使用awk解析文本文件并存储在两个变量中
parse text file using awk and store in two variables
我正在尝试像这样解析一个文件:
for NAME in `cat file.txt | grep name | awk '{print }'`
do
echo " $NAME "
......
done
file.txt内容:
name John box 2
name Joe box 3
name May box 4
然后它会打印:
John
Joe
May
但是现在我想同时获取箱子编号,我需要将名称和箱子存储在两个变量中,怎么办?
预期结果:
echo "$NAME $BOX"
John 2
Joe 3
May 4
这里根本不需要 Awk(or cat
!)。
grep '^name' file.txt |
while read -r _ name _ box;
do
echo " $name $box "
......
done
或者,如果您只想打印这两个字段而不对这些变量做任何事情,只需
awk '/^name/ { print , }' file.txt
更根本的是,您可能想要修改文件格式,以便不必在每一行都指定标签(或者如果这真的有用,可能使用允许这种结构的标准文件格式,比如 JSON 或者 YAML)。
我正在尝试像这样解析一个文件:
for NAME in `cat file.txt | grep name | awk '{print }'`
do
echo " $NAME "
......
done
file.txt内容:
name John box 2
name Joe box 3
name May box 4
然后它会打印:
John
Joe
May
但是现在我想同时获取箱子编号,我需要将名称和箱子存储在两个变量中,怎么办?
预期结果:
echo "$NAME $BOX"
John 2
Joe 3
May 4
这里根本不需要 Awk(or cat
!)。
grep '^name' file.txt |
while read -r _ name _ box;
do
echo " $name $box "
......
done
或者,如果您只想打印这两个字段而不对这些变量做任何事情,只需
awk '/^name/ { print , }' file.txt
更根本的是,您可能想要修改文件格式,以便不必在每一行都指定标签(或者如果这真的有用,可能使用允许这种结构的标准文件格式,比如 JSON 或者 YAML)。