这是我的查询:
/path/newdir/newfile.csv
示例输入搜索字符串:123456789
示例输出:
样品号:123456789 时间:2012-05-29T10:21:06Z 时间:2012-05-29T13:07:46Z
这是我的查询:
/path/newdir/newfile.csv
示例输入搜索字符串:123456789
示例输出:
样品号:123456789 时间:2012-05-29T10:21:06Z 时间:2012-05-29T13:07:46Z
您可以尝试使用 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
我希望这会对你有所帮助。
grep 命令用于在文件中搜索字符串。在您的示例中,您将执行以下操作:
grep 123456789 /path/newdir/newfile.csv
您还可以在输出中包含上下文:
grep -A <lines before> -B <lines after> 123456789 /path/newdir/newfile.csv
让我再猜一次。
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}'
如果您与最后一行匹配,则需要添加一些状态自动化以在最后一行打印收集的数据。