Можно ли представить данное выражение sed в виде одной строки?

Как я могу переписать этот sed-скрипт так, чтобы он выполнялся в одну строку, сохраняя все остальные функции и при этом избегая ошибок дословного перевода новых строк ('\n')?
  • 1 декабря 2023 г. 20:09
Ответы на вопрос 2
Да, можно. Чтобы переписать скрипт sed в одну строку, достаточно разделить отдельные команды с помощью точки с запятой. Ниже приведены примеры скрипта из нескольких строк и эквивалентного ему скрипта в одну строку.

Многострочный скрипт:

```
sed '
  s/foo/bar/g
  /baz/d
  s/qux/corge/g
'
```
Однострочная версия:

```
sed 's/foo/bar/g; /baz/d; s/qux/corge/g'
```

Оба эти скрипта делают то же самое: все вхождения "foo" заменяют на "bar", удаляют все строки, содержащие "baz", и все вхождения "qux" заменяют на "corge".

Однако стоит заметить, что при работе с однострочными скриптами становится сложнее читать и отлаживать код, особенно если скрипт достаточно длинный или сложный.
Возможная переформулировка: Примените команду `sed -i '1,40{/alb.ingress.kubernetes\/group.name:/a\'$'\n''\ \ \ \ alb.ingress.kubernetes\/load-balancer-attributes:\ "access_logs.enabled"'$'\n''}' deployment.yaml`. Эта команда встраивает настройки журнала доступа с помощью alb.ingress.kubernetes в файл deployment.yaml 
Похожие вопросы