我正在尝试在 bash 中最后一次出现字符串后添加一个新行。
例如,如果我有以下文本:
GG1 test-35
GG1 test-38
GG1 test-40
HH1 test-52
HH1 test-60
HH1 test-32
HH1 test-40
LL1 test-101
LL1 test-99
LL1 test-24
假设我想在“HH” block 的末尾添加一个新行,所以它会变成:
HH1 test-52
HH1 test-60
HH1 test-32
HH1 test-40
HH1 test-56
到目前为止,我已尝试使用 sed 和 awk,但似乎无法正确使用。如果我可以搜索实际的测试编号(如 HH1 test-40),这很简单,但我唯一可以搜索的是首字母缩写词。所以我需要最后一行出现 HH1,然后在它之后添加一个新行。
感谢任何帮助。
最佳答案
用 gawk 快速且肮脏:
awk 'BEGIN{RS="";ORS="\n\n"}/^HH/{$0=$0"\nHH1 test-56"}7' file
它很脏,因为它在输出末尾留下了一个空行。
关于bash - 在 bash 中最后一次出现字符串后插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567351/