LINUX.ORG.RU

Как при помощи перенаправления, добавить текст в файл на новую строку?

 , ,


0

1

Всем привет! Пишу на баше скрипт для сбора информации. Есть много строк А=‘dmidecode -t параметр | grep параметр | awk {‘print $4}’’ В=‘dmidecode -t параметр2 | grep параметр2 | awk {‘print $4}’’ С=‘dmidecode -t параметр3 | grep параметр3 | awk {‘print $4}’’ echo -e ${Cl} “ Param1 : \t $A” echo -e “… $B” echo -e “…$C”

Далее создается файл log_date/time.txt

Вопрос, как перенаправить все верхние строки с echo в файл, что бы они были отдельно на каждой строке? Пробовал добавлять \n после переменной, но выводит ее как текст. Если все это объединить в переменную - не работает. Если кажду строку перенаправлять, получается одна очень длинная строка.

Хотелось бы видеть Param1 : Bios ver 1 Param2 : MB ver Mb_v2 И тд


Ответ на: комментарий от Toten_Kopf

Попробую проще. Хочу все строки вывода (echo …) перенаправить в файл ( >> file.txt) Но что бы они были не строкой, а в столбик.

Потому что когда делаю echo “ тут что-то есть» >> file echo «и тут тоже» >>file

При nano file получается Тут что-то есть и тут тоже

Вместо

Тут что-то есть И тут тоже

Sudzon
() автор топика

Плюсую предыдущего оратора.

Касательно

Пробовал добавлять \n после переменной, но выводит ее как текст.

  1. Если ты хочешь чтобы корректно интерпретировались escape-последовательности, то в echo нужно добавить -e флаг

  2. Помни, что если ты используешь двойные кавычки а не одинарные, то нужно экранировать обратный слеш.

В итого получаем такие варианты:

$ echo -e 'One\nTwo'
One
Two

$ echo -e "One\\nTwo"
One
Two
Kroz ★★★★★
()
Ответ на: комментарий от Sudzon

ну ту же уже даже про awk в курсе - там в его GNU руководстве в инете есть прекрасные примеры по обработке всякого.

и да, | grep параметр | awk {‘print $4} - избыточная конструкция!

awk цмеет сам прекрасно выделять образцы. читай руководство

вкратце:

/шаблон/{действие}

причём разные шаблоны будут выполняться над 1 строкой последовательно, в порядке расположения в команде (программе) для awk

mumpster ★★★★★
()