例如,文本文件包含:
dfsdfsd
f
dsf
dsf
dsf
dsf
sdafadfdasfdsfd
sf
sdfasdfdasfdsfsdf
sd
fsdfdsaf
然后,我想找到一种方法来获得sf的行号 并在sf
之前插入一个段落有没有办法在bash编程中做到这一点???谢谢
答案 0 :(得分:1)
如果您想查找行号,可以使用grep -n
。
如果你只是想在前一行插入一行,你可以像这样使用sed
:
sed "s/sd/paragraph\nsd/" file
这将在“sd”行的上方插入文本“paragraph”。
仅在第一场比赛中执行此操作:
sed "0,/sd/ { s/sd/paragraph\nsd/ }" file
在这里,我们只匹配第一个匹配的“sd”行,因此任何后来的sd都不匹配。
答案 1 :(得分:1)
sed
的{{3}}不仅仅是s///
。要在每个匹配行之前插入文本:
sed '/pattern/ i \
text to be \
inserted goes \
here'
答案 2 :(得分:0)
可能是正则表达式替换,将\nsf\n
替换为\n\nsf\n
或类似的东西,具体取决于您的具体要求。不能获得实际的行号,但如果您想要做的只是插入段落,那可能没有必要。