如果文本文件中存在相同的多行,则使用bash脚本查找特定文本

时间:2014-01-23 14:23:08

标签: bash sed grep find

我想编写一个bash脚本来复制文本文件中的一个值。在文本文件中,我有一些reapeated线。示例:

WIN [err]: fe I:35    A Q:24.17  si: 4554  INT:55.90 CA Mn A:61.00 B:44.45  INT:42.06

WIN [err]: fe P:880   A Q:26.89  si:  325  INT:12.12 CA Mn A:57.62 B:44.11  INT:39.56

some text line
some text line

"Line that i want to copy value:" WIN [err]: fe P:870   A Q:26.89  si:  325  INT: 5.5 CA Mn A:57.62 B:44.11  INT:39.06 

dec 2000 frs, 30.8 fs, 2029.95 ms/s

现在我想显示INT值ex:39.06,该值存在于此行“我要复制值的行:”中。请考虑来自的说明行 “WIN [错误] .....”我是shell脚本的新手。因为我修改了我的文本文件。现在我们看到字符串“INT:也存在于其他一些行中。 有人可以帮忙吗? 感谢

2 个答案:

答案 0 :(得分:2)

我认为你不想要“倒数第二行”。我相信你要求匹配WIN的最后一行中的值(在你给出的例子中,这些是等价的。)

awk '/^WIN/ {v=$NF } END {split(v,a,":"); print a[2]}' input

答案 1 :(得分:0)

可能这可行:

awk -F'[: ]+' '$1=="WIN"{a=$NF} END {print a}' RS='[\r\n]+' file.log