这是我的文件的示例:
AAAA
BBBB
CCCC
[section 1]
DDDD
EEEE
[section 2]
FFFF
GGGG
[section 3]
IIII
我需要在第3节之后的行中插入A)第XXXX
行作为最后一行,B)在第3行之后的行YYYY
中插入行(但是要创建一个全新的行,因此第2部分和第3部分始终以空行分隔)。这将是预期的结果:
AAAA
BBBB
CCCC
[section 1]
DDDD
EEEE
XXXX
[section 2]
FFFF
GGGG
YYYY
[section 3]
IIII
可以使用sed在bash文件中完成吗?
答案 0 :(得分:0)
使用awk
比sed
容易。使用awk
,您可以使用空白的RS
:
awk -v ORS='\n\n' -v RS= '/\[section 1]/{$0 = $0 "\nXXXX"}
/\[section 3]/{$0 = "YYYY\n" $0} 1' file
AAAA
BBBB
CCCC
[section 1]
DDDD
EEEE
XXXX
[section 2]
FFFF
GGGG
YYYY
[section 3]
IIII