Bash Cat несколько файлов содержимого в одну строку без перевода строки - PullRequest
12 голосов
/ 14 октября 2010

Я получил несколько файлов с именем start как eg_.и только каждый из них содержит одну строку

eg_01.txt: @china: 129.00

eg_02.txt @uk: 219.98

eg_03.txt @USA: 341.90

......

Я рассчитываю поместить их в одну строку для отправки по URL-адресу, например: @china: 129.00@uk: 219.98@USA: 341.90

я использую echo cat eg_*

это дает мне вывод, похожий на строку, но на самом деле он содержит новую строку: "@china: 129.00

@ uk: 219.98 @USA: 341.90"

Есть ли другой способ, которым я могу построить эту строку, которая ожидала и избавиться от новой строки и даже пробела?только кошки достаточно, чтобы сделать это?

заранее спасибо

Ответы [ 3 ]

19 голосов
/ 14 октября 2010

Вы всегда можете передать это tr

tr "\n" " "

Это удаляет все новые строки в stdin и заменяет их пробелами

РЕДАКТИРОВАТЬ : как предложено Бартом Сасом, вы также можете удалить символы новой строки с помощью tr -d

tr -d "\n"

(примечание: простое указание пустой строки для tr для второго аргумента не подходит)

1 голос
/ 15 октября 2010

В Perl вы бы сделали это так:

perl -pe'chomp' eg*.txt

-p говорит "перебрать входной файл и выполнить любой код, указанный переключателем -e. chomp в Perl говорит" Удалить все завершающие символы новой строки. "

1 голос
/ 15 октября 2010

Использование только одной команды

url=$(awk '{printf "%s",$0}' eg*)
...