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

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

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

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 

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

  • Как заменить определенный текст на соответствующий номер строки с помощью sed?
  • Загрузка нескольких файлов через ftp с помощью curl
  • В bash вместо создания новой строки изменения уже сделанной строки
  • Разделить многопараметрированную оболочку на несколько переменных
  • Попытка выяснить скрипт Linux
  • Понимание скрипта оболочки iptables
  • Shell script - Не удалось найти 'fi' для этого 'if'
  • Удалите x строк до и y строк после n-й строки (которая соответствует шаблону) в файле
  • 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 - лучшая ОС в мире.