随着SED,我怎么会通过文件(县)旅游和替换是这样的:sed:如何在选定的文本选择内保留选定文本的同时替换文本?
alphabet.abc = "123";
与
alphabet.ABC("123");
我现在有是这样的:
for i in $(ls -a); do sed -i 's/asd/dfg/g' $i; done;
但在保留选择内容的同时不能取代选择。
随着SED,我怎么会通过文件(县)旅游和替换是这样的:sed:如何在选定的文本选择内保留选定文本的同时替换文本?
alphabet.abc = "123";
与
alphabet.ABC("123");
我现在有是这样的:
for i in $(ls -a); do sed -i 's/asd/dfg/g' $i; done;
但在保留选择内容的同时不能取代选择。
要将文本的部分保留在选定或匹配的字符串中,您需要使用capturing groups .AS @anubhava在其评论you don't need to parse the output of ls
command中说。
for i in *; do sed -i 's/\(alphabet\.\)\([a-z]\+\) *= *\([^;]*\);/\1\U\2(\3);/g' $i; done;
例子:
$ echo 'alphabet.abc = "123";' | sed 's/\(alphabet\.\)\([a-z]\+\) *= *\([^;]*\);/\1\U\2(\3);/g'
alphabet.ABC("123");
通过GNU find
命令:
您可以运行在想要与位于工作文件的目录下面的命令。
find . -type f -execdir sed -i 's/\(alphabet\.\)\([a-z]\+\) *= *\([^;]*\);/\1\U\2(\3);/g' {} \;
您是否正在尝试将小写字母从小写字母改为大写字母? – 2014-10-18 06:31:04
从某物到任何东西,从abc =“123”;到ABC(“123”)的转换是重要的部分。你添加的答案为我解决了这个问题,并提供了很多替代的可能性,所以它很好。我只需等待一秒钟,然后将其标记为正确,以确保我没有错过任何东西。 – JVE999 2014-10-18 06:41:41