以递归方式更改每个目录下的所有单词出现次数

时间:2016-02-14 09:37:52

标签: java linux

Haw可以在某个目录下搜索后更改单词: 例如,将 abc 一词更改为所有.c文件中的 ddd

grep --include=\*.c -rnw '/path/to/somewhere/' -e "abc"

那么如何将这些事件修改为 ddd ? 什么是命令行?

1 个答案:

答案 0 :(得分:0)

我猜你还在Linux上......好吗?

非常简单:

find <directory> -type f -name \*.c -print0 | xargs -0 -t sed -i 's/abc/ddd/g'

命令的第一部分将在&#34;目录&#34;下找到扩展名为.c的所有文件。 (你必须在这里使用真实的目录名称(例如一个&#39;。&#39;(点)来查看你当前的目录。)扩展名为.c的文件名然后通过xargs传递到sed将替换&#34;就地&#34;所有出现的&#34; abc&#34;用&#34; ddd&#34;。注意:这个命令将取代所有&#34; abc&#34;到&#34; ddd&#34;(&#34; abc&#34;&gt;&#34; ddd&#34;,&#34; abcdefg&#34; &gt;&#34; ddddefg&#34;等...)。如果您想要不同的东西或研究这些命令如何工作:

man find
man xargs
man sed