请教:我想在一个目录下的所有文件中查找s1,并替换为s2
我想在一个目录下的所有文件中查找字符串1,并替换为字符串2,命令行该怎么写呢包含指定目录中的所有子目录.
谢谢 :mrgreen: 用vim。
1)cd 目录
2)vim *
3):argdo %s/str1/str2/g | update 楼上的兄弟,我怎么没看明白啊,解释一下吧,不好意思 :-(
perl -pe 's/string1/string2/g' /path/* sed -n -e 's/str1/str2/gp' /path/*
此条命令只能显示目录下文件中替换的内容,不可显示下一级目录中文件的替换情况,而且只是显示替换,并没有正真替换,有没有高手来重写一下,完成上面中我说的两个不足之处! 补充一下,最好在#($)后的命令中完成,不要用VI命令进入文本操作,写SHELL脚本也可以! :oops:
麻烦各位大虾喽!
perl -pe 's/string1/string2/g' /path/*
这样直接用perl直接修改文件:
perl -pi -e 's/string1/string2/g' $(find /path -type f) 请大家都解释一下自己命令的意思好么,另外,最好可以通过命令行直接完成 .
谢谢了 :oops: 似乎最为正统的办法是sed吧。不过可能要编一个小程序了,因为sed的输出好像必须用重定向。 请大家都解释一下自己命令的意思好么,另外,最好可以通过命令行直接完成 .
谢谢了 :oops:
我写的就是在命令行下直接运行即可,用perl直接修改文件,不用重定向的! 如果是想替换某个目录下某种类型的文件中的内容,那该怎么办?比如替换A目录下(包括子目录)所有*.java中的某个字符串。
页:
[1]