Linux 命令(43) paste 命令

2021-08-19 19:23:25 字數 1739 閱讀 3975

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 自定義分隔符,預設為製...