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

У меня очень длинная строка, разделенная кусками. Я хочу добавить их в файл, не помещая символ новой строки, используя 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 

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

  • Итерация над массивом bash
  • Обработка вывода sqlite db в массив ksh с пробелами
  • Как проверить, имеет ли glob расширение?
  • Как переключать звук между ПК и телевизором?
  • Как выбрать строки из файла CSV на основе разных значений столбцов?
  • Сценарий bash для взятия двух строк в текстовом файле и формирования столбцов вдоль одной строки
  • Почему (echo ""; exit 1) не выходит из сценария?
  • Переместите все подкаталоги и сделайте что-нибудь в сценарии оболочки Unix.
  • 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 
    Interesting Posts

    Удалить все после второго подчеркивания

    Как вы соответствуете строке, которая начинается с специального символа с помощью grep?

    Существуют ли эмуляторы USB для Linux?

    Стирание жесткого диска, переписывание только заголовков, это безопасно?

    Коды разломов пакетов Wireshark?

    Почему kdeconnect прослушивает порт 1716 / tcp все время? Как закрыть порт / защитить его?

    Как создать исполняемые файлы, которые могут работать на старых системах на современных дистрибутивах?

    Настройка KDE для обрезки экрана ноутбука в соответствии с отношением внешнего VGA-устройства

    как получить размер косвенного массива в bash?

    iconv завершен сигналом 7

    Команда sed: N не читает одну строку

    Предложения, необходимые для отладки, почему ps -ef застрял

    Отсутствует файл init.d / apache2

    Минимальная установка Debian

    Не удается заставить USB-адаптер ethernet работать под CentOS 6 минимальным

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