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