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

У меня очень длинная строка, разделенная кусками. Я хочу добавить их в файл, не помещая символ новой строки, используя bash.

Пример:
Первое добавление

  • Назначение переменной из файла, разделенной разделителем
  • Идеи для анализа результатов netstat для активных подключений
  • Удаленный ls на нескольких машинах
  • Как извлечь строки, начинающиеся с шаблона и фрагментов между двумя шаблонами?
  • Поверните скрипт bash и php в распределяемый rpm
  • Скрипт с несколькими арифметическими условиями не работает
  • cat >> abc.sh << EOL echo "bla bla" ifcon EOL 

    Второе добавление

     cat >> abc.sh << EOL fig -a uname -a EOL 

    И файл abc.sh должен быть:

     echo "bla bla" ifconfig -a uname -a 

    и не

     echo "bla bla" ifcon fig -a uname -a 

    Как я могу это достичь?

  • Полные пары ключевых значений
  • Использование getopts для анализа параметров после аргумента без опции
  • Извлечение строк из ключей из файла
  • Мощный способ выполнения команды / запуска скрипта при входе в систему?
  • Разверните вывод двух команд `awk`
  • Инициализировать скрипт для запуска скрипта как конкретного пользователя
  • 2 Solutions collect form web for “Как добавить несколько строк в файл без последней новой строки?”

    << всегда включает в себя завершающую новую строку (кроме пустого документа).

    Вам нужно будет:

     printf %s 'echo "bla bla" ifcon' >> file 

    Или используйте команду, которая удаляет конечный символ новой строки вместо cat :

     awk '{printf "%s", l $0; l=RT}' << EOF >> file echo "blah bla" ifcon EOF 

    (Или perl -pe'chomp if eof' )

    Или, где здесь-документы реализованы с временными файлами ( bash , zsh , pdksh , AT & T ksh , Bourne, а не mksh , dash или yash ), в системах GNU / Linux вы могли бы сделать:

     { truncate -s-1 /dev/stdin && cat; } << EOF >> file echo "blah bla" ifcon EOF 

    Используйте echo с ключом -n:

      echo -n "blah blah" >> file 
    Linux и Unix - лучшая ОС в мире.