2010-10-14 80 views
9

我得到了一些文件,其名稱以eg_開頭。並且僅在每個包含一個單線bash cat多個文件內容到沒有換行符的單個字符串

eg_01.txt: @china:129.00

eg_02.txt @uk:219.98

eg_03.txt @USA:341.90

.. ...

我期待他們能夠通過以下URL發送到一行: @china:[email protected][email protected]:341.90

我使用 呼應cat eg_*

它給我的輸出看起來像一個字符串,但它實際上包含了新行: 「@china:129.00

@uk:219.98 @USA:341.90」

有沒有其他的方法可以構造出預期並擺脫新線甚至空間的弦?只有貓才能做到這一點?

在此先感謝

+0

相關:http://stackoverflow.com/questions/8739427/bash-add-string-to-the-end-of-the-file-without-line-break – redolent 2014-12-01 21:36:07

回答

17

您可以將其去除的stdin所有新行和用空格

編輯替換它們總是管tr

tr "\n" " " 

:由巴特SAS建議,你也可以用tr -d刪除換行

tr -d "\n" 

(注意:只是指定一個空字符串tr的第二個參數不會做)

+2

如果你不想要字符串之間的空格你可以使用tr -d'\ n'代替。 – 2010-10-14 19:28:26

+0

非常感謝貓eg_ * | tr -d'\ n'做了訣竅 – user271785 2010-10-14 19:32:04

+0

注意少數使用Windows行結束符的文件的用戶:「\ r \ n」是使用的字符串。 – 2012-09-19 23:33:03

1

僅使用一個命令

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

在Perl中,你會做這樣的:

perl -pe'chomp' eg*.txt 

-p表示「循環輸入文件並執行-e開關指定的任何代碼。 Perl中的chomp表示「刪除任何結尾的換行符」。

相關問題