隨着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