我正在尝试执行以下操作:
- 逐行读取文件。
- 每行具有以下结构:
field1;field2;field3
- 用于
awk
分隔这些字段中的每一个,然后进一步处理这些字段中的每一个
我的代码片段是:
while read l
do
n=`echo ${l} | awk --field-separator=";" '{print NF}'`
field1=`echo ${l} | awk --field-separator=";" '{print $1}'`
field2=`echo ${l} | awk --field-separator=";" '{print $2}'`
field3=`echo ${l} | awk --field-separator=";" '{print $3}'`
echo ${n} ${field1} ${field2} ${field3}
done < temp
其中 temp 仅包含以下行:
xx;yy;zz
我在命令行上得到的答案是:
1 xx;yy;zz
我不确定我是否理解这个输出。任何解释都会很好,因为它确实适用于其他文件。我在 Mac 上工作,而这段代码awk
在bash
脚本中使用。