\ n удаляется из вывода grep при установке переменной - PullRequest
2 голосов
/ 05 марта 2012

У меня есть следующий файл

A Query 3 ms
B Query 4 ms 
A Query 5 ms

Я написал команду grep для извлечения необходимого мне пути.

temp=`grep A acces.log | grep Query `

Помещение в переменную temp удаляет "\ n" из вывода.Как заставить bash не удалять \ n?

Извините за плохое общение. Я получаю o / p вроде

A Query 3 ms A query 5 ms 

Мне нужен o / p в следующем формате

 A Query 3 ms
 A query 5 ms 

Ответы [ 2 ]

6 голосов
/ 05 марта 2012

Вам нужно использовать двойные кавычки:

temp=`grep A acces.log | grep Query `
echo "$temp"
1 голос
/ 05 марта 2012

Во-первых, я отвечу на вопрос @ Карла: зачем он нужен в переменной?Большинство применений, которые я могу придумать для чего-то подобного, делают ненужным или простым добавлением позже.Но если вам действительно нужно сохранить его, лучший способ, который я знаю, - это добавить дополнительную защитную строку к выводу команды, а затем удалить ее после , когда результат был сохранен в переменной:

temp=$(grep A acces.log | grep Query; echo x)
temp="${temp%x}"

Команда echo фактически добавляет "x" и еще одну новую строку, но эта дополнительная новая строка удаляется заменой $(), поэтому все, что необходимо удалить явным образом, это "x».

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