我想匹配並替換大量文件中的字符串。匹配字符串加上任何非空白字符並插入空格
要搜索的字符串:
</ANON>[any non-whitespace char], e.g. "</ANON>." or "</ANON>)"
我想在標籤和非空白字符之間堅持一個空白。
我曾嘗試使用類似sed來做到這一點:
sed -i -e 's/<\/ANON>/S/<\/ANON> /S/g'
但很可惜,這是行不通的。
任何幫助非常感謝。
我想匹配並替換大量文件中的字符串。匹配字符串加上任何非空白字符並插入空格
要搜索的字符串:
</ANON>[any non-whitespace char], e.g. "</ANON>." or "</ANON>)"
我想在標籤和非空白字符之間堅持一個空白。
我曾嘗試使用類似sed來做到這一點:
sed -i -e 's/<\/ANON>/S/<\/ANON> /S/g'
但很可惜,這是行不通的。
任何幫助非常感謝。
嘗試以下操作:
sed -i -e 's|\(</ANON>\)\([^[:space:]]\)|\1 \2|g' file
這不是Perl和你不能使用\ S非空格字符。你也應該捕獲組並將它們用於替換零件。你也不能使用/ S,因爲1)它是錯誤的2)sed用於分離具有模式,替換和標記的部分的斜線。
P.S.或者你可以使用Perl,如果你喜歡:
perl -p -i -e 's|(</ANON>)(\S)|$1 $2|g' file
你想要的輸出是什麼? – 2014-09-03 19:26:09
使用\ S替代/ S來表示非空格字符 – terrywb 2014-09-03 19:29:16
與標記和非空白字符之間使用空格的輸入相同。 – SupsH 2014-09-03 19:29:36