Text-Processing
如何使用 sed 將打開的括號從行尾替換為新行?
我有很多文件從行尾打開了錯誤的 { 括號,需要按條件將其替換為新行
[a-z)] [{]|[a-z)][{].
輸入範例:
public class Test { }
預期輸出:
public class Test { }
我的解決方案有什麼問題?
sed -e '/[a-z)] [{]|[a-z)][{]/s/{/N{/g' *.java -r
由於您在 Mac 上執行此操作,因此
sed
將執行此操作:sed 's/{$/\'$'\n{/'
例子:
echo "public class Test { }" | sed 's/{$/\'$'\n{/' public class Test { }
如果要“就地”編輯文件,請執行以下命令:
sed -i "" 's/{$/\'$'\n{/' java
結果:
cat java public class Test { }
這是
sed
在 Mac 上插入換行符的參考。在 OS X 10.11.6 中測試
你可以簡單地使用這個命令
sed -e s/{/\\n{/g *.java
它將
{
用 a替換 any\n{
並在螢幕上顯示輸出。要替換文件中的文本,您可以使用就地選項sed -i s/{/\\n{/g *.java