我有许多文件的行尾打开的 { 括号错误,需要按条件将其替换为新行[a-z)] [{]|[a-z)][{].
输入示例:
public class Test {
}
预期输出:
public class Test
{
}
我的解决方案有什么问题?
sed -e '/[a-z)] [{]|[a-z)][{]/s/{/N{/g' *.java -r
答案1
由于您是在 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 中测试
答案2
你可以简单地使用这个命令
sed -e s/{/\\n{/g *.java
它将{
用 a替换 any\n{
并在屏幕上显示输出。要替换文件中的文本,您可以使用就地选项
sed -i s/{/\\n{/g *.java