Я пытаюсь подписаться на пост
Как переместить указанную строку в файле в другое место с помощью регулярного выражения (сценарий bash)?
к моему файлу примера
asdasd0
-SRC_OUT_DIR = /a/b/c/d/e/f/g/h
asdasd2
asdasd3
asdasd4
DEFAULTS {
asdasd6
Окончательный вывод должен выглядеть как
asdasd0
asdasd2
asdasd3
asdasd4
DEFAULTS {
-SRC_OUT_DIR = /a/b/c/d/e/f/g/h
asdasd6
Я пробовал следующее
sed "/-SRC_OUT_DIR.*/d;/DEFAULTS { /a"$(sed -n '/-SRC_OUT_DIR.*/p' test.txt) test.txt`
но это не работает. Я получаю следующий вывод
sed:can't read =: No such file or directory
sed:can't read "/a/b/c/d/e/f/g": No such file or directory
asdasd0
asdasd2
asdasd3
asdasd4
DEFAULTS {
-SRC_OUT_DIR
asdasd6
Мне также интересно, почему я не могу использовать \1
, \2
, чтобы напечатать строку, которую нужно переместить. Я пробовал это, но ничего не печатает. Как мне написать команду sed
, если мне нужно переместить несколько совпадающих строк в разные места файла?