我想用一些新字符串替换文件中特定位置的单个字符串。假设我想在如下所示的文件中搜索“BAD”:
MAD
DAD
BAD
DAB
BED
所以现在我想用以下内容替换位置 3 的 BAD:
BAD-1
BAD-2
BAD-3
生成的文件应该如下所示:
MAD
DAD
BAD-1
BAD-2
BAD-3
DAB
BED
我用 sed 做了一些尝试:
sed "s/old/new/g"
但这只会改变一行。 有任何想法吗?
谢谢和问候!
最佳答案
这应该有效:
sed 's/^BAD$/BAD-1\nBAD-2\nBAD-3/' file
MAD
DAD
BAD-1
BAD-2
BAD-3
DAB
BED
使用 awk 进行范围控制:
awk -v n=3 '/^BAD$/{for(i=1; i<=n; i++) print "BAD-" i; next} 1' file
关于linux - 用多个新字符串替换文件中特定位置的单个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38787256/