如果结构包含特定字符串,如何从文件中选择特定集或结构?

如果结构包含特定字符串,如何从文件中选择特定集或结构?

我想提取具有特定字符串的集合,例如:

文件abc.txt包含

abc 123
abcd 1234
abcde 12345

abc 123
abcd 123
abcde 12345

abc 123
abcd 1234
abcde 12345

现在从上面的集合中可以看出,在第二集合中,第二行没有1234。所以我想要提取的是这些具有此类字符串的集合。

abc 123
abcd 123
abcde 12345

答案1

> awk -v RS=$'\n\n' -v FS=$'\n' -v ORS=$'\n\n' '$2 ~ /123$/ {print}' abc.txt
abc 123
abcd 123
abcde 12345

答案2

它是 GNU 的标准程序sed

sed '/abc 123/{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt

或者

sed '/^$/!{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt

如果您面向空行,而不是abc 123块中的第一个 ( )

相关内容