linux paste变量,Linux paste命令的使用方法

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 好强大,多个文件,照样能够按行拼接。而且会发现,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命令的使用方法的文章就介绍到这了,更多相关Linux paste命令内容请搜素脚本之家以前的文章或下面相关文章,希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值