我試圖使用sed
來替換字符串並考慮空白。
例子:使用sed和空格的正則表達式
Hello World
由
Hello George
代替我想:
sed -e 's/Hello[:space]+World/Hello George/' ./infile > outFile
,但它不工作。
我該如何解決這個問題?
我試圖使用sed
來替換字符串並考慮空白。
例子:使用sed和空格的正則表達式
Hello World
由
Hello George
代替我想:
sed -e 's/Hello[:space]+World/Hello George/' ./infile > outFile
,但它不工作。
我該如何解決這個問題?
sed -e 's/Hello[[:space:]]\+World/Hello George/' ./infile > outFile
或
sed -e 's/Hello \+World/Hello George/' ./infile > outFile
注意:在OSX,你需要
sed -E 's/Hello +World/Hello George/' ./infile > outFile
這是有效的。是否有一種情況我寧願在'[[:space:]]上使用'\ +'?它總是可用嗎? – Jim
我認爲''[[:space:]]'包含標籤,也許還有其他一些標籤,而''就是......好的......單個空間。兩者都應該始終可用(在sed中) – doubleDown
可能是你可以用Perl去:
perl -pe 's/Hello\s*World/Hello Goerge/g'
'[:空間:]'而不是'[:空間]',我想。另外,'[[:space:]]',否則方括號會被誤解。 – January