Как добавить несколько строк в файл

Я пишу сценарий bash для поиска файла, если он не существует, тогда создайте его и добавьте в него:

Host localhost ForwardAgent yes 

Итак, "line then new line 'tab' then text" Я думаю, что это чувствительный формат. Я знаю, вы можете это сделать:

 cat temp.txt >> data.txt 

Но это кажется странным с двух его линий. Есть ли способ добавить это в этом формате:

 echo "hello" >> greetings.txt 

  • redirect stdout и stderr в сценарии bash
  • Управление терминалом в середине трубы
  • Добавить вывод в файл и перенаправить stderr в null
  • бездонный тройник?
  • Почему `> my.log 2> & 1 &` заставляет работу поддерживать выход из системы?
  • Ошибка перенаправления Dash exec
  • Как реализовать отложенное stdout в дочернем процессе без использования временных файлов?
  • Перенаправление stdout игнорирует строки без символа перевода строки
  • 7 Solutions collect form web for “Как добавить несколько строк в файл”

     # possibility 1: echo "line 1" >> greetings.txt echo "line 2" >> greetings.txt # possibility 2: echo "line 1 line 2" >> greetings.txt # possibility 3: cat <<EOT >> greetings.txt line 1 line 2 EOT 
     printf '%s\n %s\n' 'Host localhost' 'ForwardAgent yes' >> file.txt 

    Или, если это буквальная вкладка, которую вы хотите (а не четыре пробела в своем вопросе):

     printf '%s\n\t%s\n' 'Host localhost' 'ForwardAgent yes' >> file.txt 

    Вы можете добиться такого же эффекта с помощью echo , но точно, как он отличается от реализации до реализации, тогда как printf является постоянным.

     echo -e "Hello \nWorld \n" >> greetings.txt 

    SED может добавить строку в конец файла, например:

    sed -i '$ a text to be inserted' fileName.file
    $ выбирает конец файла, a указывает, что он добавляется, и после этого появляется текст, который нужно вставить. Тогда, конечно, имя файла.

    Источник: http://www.yourownlinux.com/2015/04/sed-command-in-linux-append-and-insert-lines-to-file.html

    ========== EDIT ============

    Имеет ли этот подход какую-либо дополнительную выгоду, чем другие решения?
    Да, этот подход имеет дополнительное преимущество добавления любых файлов в поиск, например: find . -name "*.html" -exec sed -i '$ a </html>' {} \; find . -name "*.html" -exec sed -i '$ a </html>' {} \;

    Я использовал приведенный выше пример, чтобы вставить конечный html-тег, отсутствующий на каждой странице html в нескольких каталогах.

    ===================================

    Я использовал sed, потому что он может использоваться с sudo. Например:

     sudo sed -i '$ a text to be inserted' fileName.file 

    альтернатива очень уродливая:

     sudo bash -c "echo a text to be inserted >> fileName.file" 

    и даже уродливее, когда сделано с ssh.

    Еще один лайнер:

     echo "Greetings 1" >> greetings.txt && echo "Greetings 2" >> greetings.txt 

    Я бы предпочел вариант -e подумать, поскольку он дает больше контроля:

     echo -e "Greeting 1\nGreetings 2\n" >> greetings.txt 

    Другой подход – использовать tee

     tee -a ~/.ssh/config << END Host localhost ForwardAgent yes END 

    Несколько строк выбора из страницы пользователя tee :

    Утилита tee копирует стандартный ввод в стандартный вывод, делая копию в ноль или более файлов.

    -a – Добавить файл в файлы, а не перезаписывать их.

    Interesting Posts

    Закрытие окна GUI из командной строки

    Реальный подход в реальном времени можно запустить в настольном Linux?

    Как получить установленное приложение для обнаружения rofi?

    Есть ли способ сделать хвостик -F?

    «Закрыть окно» (Ctrl + q) Ярлык не работает в каждом окне

    Bash: Расширение истории внутри одинарных кавычек после двойной кавычки внутри одной строки

    root не может подключиться к symlinked socket другого пользователя

    shorewall / iptables – ограничение исходящих портов пользователем

    Как установить Picasa на Scientific Linux 6.3?

    Как проверить время выполнения команды?

    Как рекурсивно проверить, имеет ли специфицированный пользователь доступ к папке и ее содержимому?

    Можно ли удалить «ssh: //» из URL-адресов git remote?

    Как получить информацию dmidecode без прав root?

    Пользователь без полномочий root не может изменять пароль Samba

    Программное обеспечение для визуального создания регулярных выражений?

    Linux и Unix - лучшая ОС в мире.