如何在搜索结果后添加一行?
所以我在某些文件中grep了一些东西:
grep "import" test.txt | tail -1
在test.txt中有
import-one
import-two
import-three
some other stuff in the file
这将返回最后的搜索结果:
import-three
现在我该如何添加一些text -after-import-three,但在“文件中的其他内容”之前。 基本上我想附加一行,但不是在文件的末尾,而是在搜索结果之后。
我知道每个搜索结果后都需要一些文本,这意味着在每个匹配行之后。 所以试试
grep "import" test.txt | sed '/$/ aLine to be added'
你可以用sed
来尝试这样的事情
sed '/import-three/ a
> Line to be added' t
测试:
$ sed '/import-three/ a
> Line to be added' t
import-one
import-two
import-three
Line to be added
some other stuff in the file
假设你不能在不同的“输入”句子之间切分的一种方法。 它用tac
翻转文件,然后用sed
找到第一个匹配(import-three),在它之前插入一行( i
)并再次反转文件。
The :a ; n ; ba
:a ; n ; ba
:a ; n ; ba
是避免再次处理/import/
match的循环。
该命令通过多行写入,因为sed
insert命令对于语法非常特殊:
$ tac infile | sed '/import/ { i
"some text"
:a
n
ba }
' | tac -
它产生:
import-one
import-two
import-three
"some text"
some other stuff in the file
链接地址: http://www.djcxy.com/p/19641.html
上一篇: How to append a line after a search result?
下一篇: Regular expression to match error and associated few lines