在文件中第二次出现单词之前插入文本

问题描述 投票:0回答:1

我正在运行Fedora 30,并想编写一个bash脚本。我有一个包含测试数据的文件

asdf
asdf
[test]
asdasd
[test]


asdasd

我想在第二次出现[测试]之前插入“ lineToInsert”

到目前为止,我有

myVar="lineToInsert"

sed  '/\[test\]/i'$myVar inputTest > test.txt

问题是,在[test]每次出现之前,都要插入“ lineToInsert”。结果

asdf
asdf
lineToInsert
[test]
asdasd
lineToInsert
[test]


asdasd

我想要的是

asdf
asdf
[test]
asdasd
lineToInsert
[test]


asdasd
bash fedora
1个回答
0
投票

您能不能尝试以下操作。

awk '/\[test\]/ && ++count==2{print "text_to_be_inserted" ORS $0;next} 1' Input_file
© www.soinside.com 2019 - 2024. All rights reserved.