【发布时间】:2017-07-13 10:39:38
【问题描述】:
我有下面的文件说 MemberFile.txt。其中包含由分隔符“#”分隔的记录,该分隔符从换行符开始,是该行的单个字符。因此一共有三个记录。
3RECORDSFILE
#
[FIRSTNAME ] FirstName01
[MIDDLENAME ] MiddleName01
[LASTNAME ] LastName01
[ADDRESS Q] AddressOf #001 Pune
[ADDRESS S] AddressOf #001
#
[FIRSTNAME ] NameFirst02
[MIDDLENAME ] MiddleName02
[LASTNAME ] LastName02
[ADDRESS Q] AddressOf [002
[ADDRESS N] Addres Mumbai sOf [002
#
[FIRSTNAME ] 03FirstName
[MIDDLENAME ] MiddleName03
[LASTNAME ] LastName03
[ADDRESS Q] Address Of 003]
我们如何在没有cat 整个文件的情况下使用 IFS 遍历记录。我在下面尝试了一些无济于事的事情。看起来它是逐行而不是按指定的 IFS 读取的。不知道哪里错了。
#!/bin/bash
while IFS='^#$' read r
do
echo $r
#do something more
done < MemberFile.txt
我尝试使用 awk 的其他选项。指定分隔符并存储到数组中。这也没有产生预期的结果。
arr=($(awk -F='^#$' '{print $1}' Member.txt))
for i in $arr
do
echo $I
#do something more
done
请您看看并纠正我哪里出错了。我对这个 bash 脚本很陌生。我需要对每条记录再次执行一些操作。
【问题讨论】: