如何在Linux中使用paste命令

今天就跟大家聊聊有關如何在Linux中使用paste命令,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

創(chuàng)新互聯建站長期為1000+客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態(tài)環(huán)境。為鳳城企業(yè)提供專業(yè)的成都網站建設、做網站,鳳城網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

01. 命令概述

paste命令會把每個文件以列對列的方式,一列列地加以合并 ,他就是相當于把兩個不同的文件內容粘貼在一起,形成新的文件。

注意:paste默認粘貼方式以列的方式粘貼,但是并不是不能以行的方式粘貼,加上-s選項就可以行方式粘貼。

02. 命令格式

用法:paste [選項]... [文件]...

03. 常用選項

將每個指定文件里的每一行整合到對應一行里寫到標準輸出,之間用制表符分隔。
如果沒有指定文件,或指定文件為"-",程序將從標準輸入讀取數據。

長選項必須使用的參數對于短選項時也是必需使用的。
  -d, --delimiters=列表 改用指定列表里的字符替代制表分隔符
  -s, --serial  不使用平行的行目輸出模式,而是每個文件占用一行
      --help  顯示此幫助信息并退出
      --version  顯示版本信息并退出

04. 參考示例

文件內容如下

[deng@localhost test]$ cat file1
1
2
3
4
5
6
[deng@localhost test]$ cat file2
AA
BB
CC
DD
EE
FF
[deng@localhost test]$

 4.1 合并兩個文件

[deng@localhost test]$ paste file1 file2
1    AA
2    BB
3    CC
4    DD
5    EE
6    FF
[deng@localhost test]$

可以看出 默認使用制表符分隔

[deng@localhost test]$ paste file1 file2 | sed -n l
1\tAA$
2\tBB$
3\tCC$
4\tDD$
5\tEE$
6\tFF$
[deng@localhost test]$

4.2 指定字符代表制表符作為分隔符

[deng@localhost test]$ paste -d '*' file1 file2
1*AA
2*BB
3*CC
4*DD
5*EE
6*FF
[deng@localhost test]$

4.3 每個文件合并成行而不是按行粘貼。(行列轉置會用到)

[deng@localhost test]$ paste -s -d '*' file1 file2
1*2*3*4*5*6
AA*BB*CC*DD*EE*FF
[deng@localhost test]$

要注意一點,此處一定要把星號用引號括起來(單引號雙引號均可),否則 Shell]會把星號擴展為當前目錄下的文件列表,千萬小心。

4.4 行列倒轉

[deng@localhost test]$ paste -s file1
1    2    3    4    5    6
[deng@localhost test]$

4.5 兩個文件行數不同

[deng@localhost test]$ paste file1 file2
1    AA
2    BB
3    CC
4    DD
5    EE
6    FF
7
[deng@localhost test]$

注意, 參數的順序對輸出是有影響的

[deng@localhost test]$ paste file2 file1
AA   1
BB   2
CC   3
DD   4
EE   5
FF   6
    7
[deng@localhost test]$

4.6 拼接多個文件

[deng@localhost test]$ paste file1 file2 file3
1    AA   aa
2    BB   bb
3    CC   cc
4    DD   dd
5    EE   ee
6    FF   ff
7
[deng@localhost test]$

paste 好強大,多個文件,照樣能夠按行拼接。而且會發(fā)現,paste 拼接是和文件列表的順序有關的。

paste命令還有一個很有用的選項(-)。意即對每一個(-),從標準輸入中讀一次數據。使用空格作域分隔符,以一個6列格式顯示目錄列表。方法如下:

[root@master etc]# cat /etc/passwd|head -n 5|cut -d : -f 1,3-5|paste -d@ - - -
root:0:0:root@bin:1:1:bin@daemon:2:2:daemon
adm:3:4:adm@lp:4:7:lp@
[root@master etc]# cat /etc/passwd|head -n 5|cut -d : -f 1,3-5|paste -d@ - - - 
root:0:0:root@bin:1:1:bin@daemon:2:2:daemon
adm:3:4:adm@lp:4:7:lp@
[root@master etc]# cat /etc/passwd|head -n 5|cut -d : -f 1,3-5|paste -d@ - - - -
root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm
lp:4:7:lp@@@
[root@master etc]# cat /etc/passwd|head -n 5|cut -d : -f 1,3-5|paste -d@ - - - - -
root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm@lp:4:7:lp
[root@master etc]# cat /etc/passwd|head -n 5|cut -d : -f 1,3-5|paste -d@ - - - - - -
root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm@lp:4:7:lp@
[root@master etc]# cat /etc/passwd|cut -d : -f 1,3-5|paste -d@ - - - - - -
root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm@lp:4:7:lp@sync:5:0:sync
shutdown:6:0:shutdown@halt:7:0:halt@mail:8:12:mail@uucp:10:14:uucp@operator:11:0:operator@games:12:100:games
gopher:13:30:gopher@ftp:14:50:FTP User@nobody:99:99:Nobody@dbus:81:81:System message bus@usbmuxd:113:113:usbmuxd user@avahi-autoipd:170:170:Avahi IPv4LL Stack
vcsa:69:69:virtual console memory owner@rtkit:499:497:RealtimeKit@abrt:173:173:@haldaemon:68:68:HAL daemon@saslauth:498:76:"Saslauthd user"@postfix:89:89:
ntp:38:38:@apache:48:48:Apache@avahi:70:70:Avahi mDNS/DNS-SD Stack@pulse:497:496:PulseAudio System Daemon@gdm:42:42:@sshd:74:74:Privilege-separated SSH
tcpdump:72:72:@zookeeper:500:500:zookeeper@hadoop:501:501:@@@

看完上述內容,你們對如何在Linux中使用paste命令有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯行業(yè)資訊頻道,感謝大家的支持。

標題名稱:如何在Linux中使用paste命令
標題鏈接:http://bm7419.com/article24/jcisce.html

成都網站建設公司_創(chuàng)新互聯,為您提供域名注冊網站建設、網站設計公司、虛擬主機關鍵詞優(yōu)化、靜態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

小程序開發(fā)