paste命令允許您水平合并文件行。它的輸出由指定為參數(shù)的每個(gè)文件的順序?qū)?yīng)組成的行,并由制表符分隔。
在本教程中,我們將說(shuō)明如何使用paste
命令。包括命令的語(yǔ)法與選項(xiàng),指定paste
命令的分隔符,合并多個(gè)文件,單個(gè)文件行的合并,使用多個(gè)分隔符。
paste命令選項(xiàng)
paste
是鮮為人知的Linux和Unix命令行工具之一。paste
命令的語(yǔ)法形式是paste [OPTION].. [FILE]...
。[OPTION]
是paste
命令的選項(xiàng),是一個(gè)可選參數(shù)。
[FILE]
可以零個(gè)或者多個(gè)文件,如果未提供文件參數(shù),則必須指定參數(shù)為-
,-
表示標(biāo)準(zhǔn)輸入,paste
命令從標(biāo)準(zhǔn)輸入中讀取內(nèi)容。
假設(shè)我們有兩個(gè)文件file1和file2,file1和file2包含以下內(nèi)容。
Iron Man
Thor
Captain America
Hulk
Spider Man
Black Widow
Captain Marvel
Dark Phoenix
Nebula
在不指定任何選項(xiàng)運(yùn)行paste
命令時(shí),paste命令將會(huì)讀取文件使用空格分隔水平合并文件相對(duì)應(yīng)的行。
除了將合并結(jié)果輸出顯示在屏幕上之外,您還可以使用重定向運(yùn)算符>
,>>
將其重定向到文件。
如果文件不存在,則會(huì)創(chuàng)建文件。>
重定向運(yùn)算符將覆蓋現(xiàn)有文件,而>>
重定向運(yùn)算符將輸出附加到文件。
paste file1 file2
paste file1 file2 > file3
Iron Man Black Widow
Thor Captain Marvel
Captain America Dark Phoenix
Hulk Nebula
Spider Man
-d
,-delimiters
選項(xiàng)允許您指定一個(gè)或者多個(gè)分隔符合并文件,而不是使用默認(rèn)的TAB
分隔符。
每個(gè)分隔符被連續(xù)使用。當(dāng)指定分隔符參數(shù)用盡時(shí),paste
從分隔符參數(shù)第一個(gè)重新開(kāi)始。
例如,要將_
下劃線用作分隔符,請(qǐng)運(yùn)行命令paste -d '_' file1 file2
。命令paste -d '%|' file1 file2 file1
指定使用兩個(gè)分隔符,分別是%
和|
。
paste -d '_' file1 file2
Iron Man_Black Widow
Thor_Captain Marvel
Captain America_Dark Phoenix
Hulk_Nebula
Spider Man_
paste -d '%|' file1 file2 file1
第一個(gè)和第二個(gè)文件中的行用分隔符列表中的第一個(gè)分隔符。第二和第三文件的行用第二個(gè)分隔符分隔。
如果提供了更多文件,paste
命令從分隔符參數(shù)的第一個(gè)重新開(kāi)始。
Iron Man%Black Widow|Iron Man
Thor%Captain Marvel|Thor
Captain America%Dark Phoenix|Captain America
Hulk%Nebula|Hulk
Spider Man%|Spider Man
-s
,--serial
選項(xiàng)指示paste
命令將文件內(nèi)所有行合并為一行,然后在合并指定的文件。
例如命令paste -s file1 file2
,首先將file1
和file2
所有行合并為一行,然后再合并兩個(gè)文件。
與-z
,--zero-terminated
選項(xiàng)一起使用時(shí),paste
命令使用空字符來(lái)分隔,而不是默認(rèn)的換行符。
當(dāng)paste
與find -print0
和xargs -0
命令結(jié)合使用來(lái)處理包含特殊字符的文件名時(shí),此行為很方便。
paste -s file1 file2
Iron Man Thor Captain America Hulk Spider Man
Black Widow Captain Marvel Dark Phoenix Nebula
結(jié)論
paste
命令用于合并給定文件的相應(yīng)行。如果您有任何疑問(wèn)或反饋,請(qǐng)隨時(shí)發(fā)表評(píng)論。
-
Linux
+關(guān)注
關(guān)注
87文章
11331瀏覽量
209992 -
命令
+關(guān)注
關(guān)注
5文章
692瀏覽量
22065
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論