这是我的问题:
/path/newdir/newfile.csv
示例输入搜索字符串: 123456789
示例输出:
样品号:123456789 时间:2012-05-29T10:21:06Z 超时时间:2012-05-29T13:07:46Z
答案 0 :(得分:1)
您可以尝试使用sed,
sed '/123456789/s/\(Sample Number.*\) \(Time In.*\) \(Time Out: [^ ]\+\) \(.*\)/\1 \2 \3/g' newfile.csv
我认为你的newfile.csv只是这样。我想是的。
文件内容:
Sample Number: 123456789 Time In: 2012-05-29T10:21:06Z Time Out: 2012-05-29T13:07:46Z some data : gfjgkgkgjg
我希望这会对你有所帮助。
答案 1 :(得分:0)
命令grep用于搜索文件中的字符串。在你的例子中,你会这样做:
grep 123456789 /path/newdir/newfile.csv
您还可以在输出中包含上下文:
grep -A <lines before> -B <lines after> 123456789 /path/newdir/newfile.csv
答案 2 :(得分:0)
让我再猜一次。
Sample Number: 123456789
Time In: 2012-05-29T10:21:06Z
Time Out: 2012-05-29T13:07:46Z
some data : gfjgkgkgjg
我们可以使用awk:
awk -v re=gfjgkgkgjg -F ": " '$1~/^Sample Number$/{sn=$2}$1~/^Time In$/{tin=$2}$1~/^Time Out$/{out=$2}$1~/^some data $/{data=$2}$2~re{print"Sample Number: "sn" Time In: "tin" Time Out: "out" Data: "data}'
如果您要与最后一行匹配,则需要添加一些状态自动化以在最后一条记录行打印收集的数据。