上一篇整理了cat指令的幾個基本常見用法,這次整理一下paste指令的基本用法。
- cat
- paste
- cut
- grep
paste
paste可以簡單的理解為把兩個文件的內容按列合並,與cat命令直接將不同文件按照先后順序接起來不同,paste可以非常快速的將兩個文件中的內容按照文件順序從左往右排起來,例如文件1的內容是:
a
b
c
d
文件2的內容是:
1
2
3
4
則paste之后的結果為:
a 1
b 2
c 3
d 4
甚至可以在拼接時向中間插入間隔符號,下面列舉一下常見的用法。
- 直接拼接
paste file1 file2 > result
上述指令將file1和file2中的內容按照列拼接之后,存入result文件中,如果不加 > result,則直接顯示在終端
- 拼接時使用指定符號隔開各個文件的內容
paste -d':' file1 file2
結果類似
a:1
b:2
c:3
d:4
-d之后使用雙引號和單引號甚至不用引號的結果一樣,而且只能指定一個字符,你寫一大串-d"::::----"仍然只有第一個字符會被取為分隔符
- 刪除所有換行
paste file1 -s
該指令會將所有換行刪掉,也就是將file1的所有行拼成一整行。
也可以是兩個文件
paste file1 file2 -s
執行的結果是兩個文件的內容分別被存成一行,然后按照文件順序輸出,最終結果是兩行,每行對應一個文件
也可以與-d組合使用,相當於將原文件內容的換行符替換為指定分隔符
paste file1 -s -d:
結果類似:
a:b:c:d
- 指定從標准輸入中讀取的次數
這是個為覺得比較特殊的用法,主要是與其他指令組合使用,第一次見到是在http://blog.csdn.net/andy572633/article/details/7214126的文章中,他給出的用法如下:
ls /etc | paste -d" " - - - - - -
先使用ls命令輸出/etc目錄,然后管道傳給paste命令,輸出結果會變成6列;注意雙引號中間是空格,表示后面的-號用空格隔開
我自己試了一下於cat組合,結果類似
cat file1 | paste -d" " - -
a b
c d
參考資料:
http://blog.csdn.net/andy572633/article/details/7214126