linux - 如何将多行回显到来自 grep 结果的文件中

标签 linux bash grep

我想将多行回显到来自 grep 结果的文件中。

实际上,我是 grep 使用命令从某些文件中提取一些文本:

find . -name *.h -o -name *.c -o -name *.cpp | xargs grep -n -l --color Apache

上面命令的输出是这样的:

./DIR/A.h
./DIR/B.cpp
./DIR/C.c

借助 grep 命令的 -l 选项,我可以从 grep 结果中获取文件名。

现在我想在文件 A.h B.cpp C.c 中插入多行。

我该怎么做?

最佳答案

试试这个:

find . -name *.h -o -name *.c -o -name *.cpp | \
xargs grep -n -l --color Apache | \
xargs sed -i '1s/^/text to prepend\n/'

这将在每个文件上添加文本“要添加的文本”。

关于linux - 如何将多行回显到来自 grep 结果的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32648329/

相关文章:

bash - 如何在“找到(…)-exec(…){}\;”中的{}中替换字符串bash命令?

linux - 如何仅在两个文件之间找到匹配项时才添加字符串

linux - 如何根据 linux 中的相邻列值获取列值?

linux - 配置文件中的文件名应该使用绝对路径还是相对路径?

linux - Linux 相当于 DOS 暂停是什么?

r - 如何从 unix 命令行提取 R 主要.次要版本?

linux - 如何使用 grep、awk 等在 1 中显示 2 行

c++ - 线程安全,无锁增量函数?

mysql - 修改mysql root密码的方法

linux - qemu:通过 ISO 安装 ubuntu 卡住,显示 "SVM"CPU 位警告