У меня много файлов с неправильно открытыми {скобками от конца строки, и мне нужно заменить его на новую строку по условию [az)] [{] | [аз)] [{].
пример ввода:
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
, она заменит любой {
на \ n {
и показать результат на экране.
Чтобы заменить текст в файлах, вы можете использовать опцию на месте
sed -i s/{/\\n{/g *.java