我有一个文件:
file.txt的
101|aaa {rating=1, dept=10, date=10/02/2013, com=11}
106|bbb {rating=2, dept=11, date=10/03/2013, com=11}
103|vvv {rating=3, dept=12, date=10/03/2013, com=11}
102|aaa {rating=1, dept=10, date=10/04/2013, com=11}
109|bbb {rating=2, dept=11, date=10/05/2013, com=11}
104|bbb {rating=2, dept=11, date=10/07/2013, com=11}
我正在基于:
来加油for i in `cat file.txt | grep -i "|aaa "`
do
echo `echo $i|cut -d' ' -f1`"|" `sed -n '/date=/,/, com/p' $i` >> output.txt
done
发生此错误
"/sysdate=/,/systime/p: No such file or directory"
请帮帮我?
输出应为:
output.txt的
101|aaa|10/02/2013
102|aaa|10/04/2013
答案 0 :(得分:1)
awk
更好:
$ awk -F"[ =,]" -v OFS="|" '/aaa/{print $1, $9}' a
101|aaa|10/02/2013
102|aaa|10/04/2013
这会将字段分隔符设置为空格=
或,
,并且只要在该行中找到文本aaa
,就会获取第一个和第9个字段。