Adi*_*ala 1 bash sed pattern-matching
我正在使用 sed 并且我有一个文件包含
苹果
橙子
香蕉
橙子
我只想在第一个橙子之后插入“梨”。所以输出应该是这样的
苹果
橙子
梨
香蕉
橙子
我使用了这个 sed 选项:
sed -i '0,/orange/a pear' 文件名
但这给了我这样的输出:
苹果
梨
橙子
梨
香蕉
橙子
这可能对你有用(GNU sed):
sed '0,/orange/!b;//a\pear' file
Run Code Online (Sandbox Code Playgroud)
重点关注从文件开头0到字符串第一次出现的行范围orange,否则就退出。如果该行包含第一次出现的字符串orange,则追加该字符串pear。