paste 命令將多個檔案的相應行預設以 tab 分隔符橫向連線起來,輸出到標準輸出。paste 後可接多個檔案,不限於 2 個檔案。如果檔案寫成連字元 -,表示內容來自標準輸入。paste 相對於 join 來說,簡單許多,不需要有相同的字段也可按行拼接。
pasete [options] [files]
-d,--delimiters=list
用指定的域分隔符取代tab。
-s,--serial
順序地合併乙個檔案的所有行到一行
--help
顯示幫助資訊並退出
--version
顯示版本資訊並退出
有兩個檔案 file1.txt 和 file2.txt,內容如下:
# file1 內容
abcdef
ghi# file2 內容
123456
789012
(1)將檔案 file1.txt 的所有行合併到一行。
paste -s file1.txt
abc def ghi
# 指定域分隔符為冒號:
paste -s -d : file1.txt
abc:def:ghi
(2)將多個檔案的所有行分別合併為一行。
paste -s file1.txt file2.txt
abc def ghi
123 456 789 012
(3)橫向連線兩個檔案,預設以 tab 分隔。
paste file1.txt file2.txt
abc 123
def 456
ghi 789
012# 通過交換檔名可指定列的位置
paste file2.txt file1.txt
123 abc
456 def
789 ghi
012
(4)paste 黏貼的內容(行)從標準輸入讀取,此時可以使用 - 來指代。例如檢視 /etc 下的檔案列表,並用 paste 列印成每行顯示五個檔名。
ls /etc/ | paste -d: - - - - -
cpi:adjtime:aliases:alternatives:anacrontab
anthy-conf:asound.conf:at.deny:audisp:audit
bash-command-not-found:bash_completion.d:bashrc:blkid:bonobo-activation
...
如果檔案格式是 dos,檔案換行符是\r\n
,那麼會出現內容覆蓋的情況。比如 file1.txt 和 file2.txt 格式是 dos,paste 這兩個檔案會出現如下情況:
[root@tencent ~]# paste file1.txt file2.txt
:123
:456
:789
:012
從結果可以看出,來自 file1.txt 的行被 file2.txt 的行覆蓋,解決辦法是,使用 vim 的末行命令:set ff=unix
將文字格式改為 unix。
[1] paste(1) manual
[2] shell基礎之-paste命令
Linux下paste命令詳解
paste單詞意思是貼上。該命令主要用來將多個檔案的內容合併,與cut命令完成的功能剛好相反。貼上兩個不同 的資料時,首先需將其分類,並確保兩個檔案行數相同。paste將按行將不同檔案行資訊放在一行。預設情況下,paste連線時,用空格或tab鍵分隔新行中不同文字,除非指定 d選項,它將成為域分隔符...
Linux 字元轉換命令paste
這個 paste 就要比join 簡單多了!相對於 join 必須要比對兩個檔案的資料相關性,paste 就直接 將兩行貼在一起,且中間以 tab 鍵隔開 而已!簡單的使用方法 root www paste d file1 file2 選項與引數 d 後面可以接分隔字元。預設是以 tab 來分隔的!...
Linux作業系統 paste命令
paste 命令的功能正好與 cut 相反。它會新增乙個或多個文字列到檔案中,而不是從檔案中抽取文字列。它通過讀取多個檔案,然後把每個檔案中的字段整合成單個文字流,輸入到標準輸出。命令格式 paste 選項 檔名 常用引數 引數 描述 s 將每個檔案合併成行而不是按行貼上 d 自定義分隔符,預設為製...