关于grep命令

时间:2012-09-20 22:12:26

标签: linux bash unix grep

我正在尝试更改我的作业中的版权标题。我可以使用以下命令列出所有带有版权标题的文件:

    grep -rni copyright *

通过上面的命令,我得到了大约1000个文件。

任何人都可以帮我一次性更改所有文件吗?

3 个答案:

答案 0 :(得分:3)

这将对包含“copyright”一词的文件应用文本更改(不区分大小写):

for filename in *; do
  if grep -qi "copyright" "$filename"; then
    sed -i'' -e 's/old text/new text/' "$filename"
  fi
done

请注意,这仅适用于当前目录。要处理子目录中的文件,您可能希望使用find命令。

如果您可以描述您想要进行的文字更改,我们可能会建议更精确的方法来实现您的目标。

答案 1 :(得分:1)

grep -ril copyright * | xargs sed -i 's/old text/new text/'

答案 2 :(得分:0)

有一个名为headache的简单工具我发现这对处理这类问题非常有用。仅在DebianUbuntu上提供。