как сохранить результат sed в переменной с символами новой строки - PullRequest
1 голос
/ 24 февраля 2012

я пытаюсь таким образом сохранить данные sed,

line=$(sed 's/old/new/g' data.t)

но проблема в том, что перевод строки не сохраняется в переменной. Команда sed создает вывод, в котором есть новые строки, переменная не хранит новые строки, пока я хочу сохранить их. Как я могу сохранить символ новой строки в переменной тоже?

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

Новая строка есть, вам просто нужно правильно заключить в кавычки переменную, чтобы увидеть ее.echo не очень хорошая команда для проверки ваших переменных, но она должна работать так, как вы хотите:

echo "$line"
1 голос
/ 24 февраля 2012

Он сохраняет переводы строк, но чтобы увидеть их при использовании, вам нужно заключить его в двойные кавычки

$ a=$(echo -e "a\nb\nc")
$ echo $a
a b c
$ echo "$a"
a
b
c
1 голос
/ 24 февраля 2012

Попробуйте это

line="$(sed 'a/old/new/s' data.t)"

echo "$line"

Я не уверен насчет вашего sed cmd, 'a / old / new / s'. Я бы ожидал увидеть что-то вроде 's / old / new / g', но удачи.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...