paste
- paste命令可以将多个文件中同行号的列合并到一行
[03:56:38 root@C8-3-55 ~]#paste --help
用法:paste [选项]... [文件]...
Write lines consisting of the sequentially corresponding lines from
each FILE, separated by TABs, to standard output.
如果没有指定文件,或者文件为"-",则从标准输入读取。
必选参数对长短选项同时适用。
-d, --delimiters=列表 改用指定列表里的字符替代制表分隔符
-s, --serial 不使用平行的行目输出模式,而是每个文件占用一行
-z, --zero-terminated 以 NUL 字符而非换行符作为行尾分隔符
--help 显示此帮助信息并退出
--version 显示版本信息并退出
比如说两个文件都有文件头,拷贝以后两个文件的文件头都并列到第一行了,形成合并的效果
[04:21:55 root@C8-3-55 ~]#df -h > df.log;lsblk >lsblk.log
[04:23:16 root@C8-3-55 ~]#paste df.log lsblk.log
文件系统 容量 已用 可用 已用% 挂载点 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
devtmpfs 886M 0 886M 0% /dev sda 8:0 0 20G 0 disk
tmpfs 903M 0 903M 0% /dev/shm ├─sda1 8:1 0 1G 0 part /boot
tmpfs 903M 17M 886M 2% /run └─sda2 8:2 0 19G 0 part
tmpfs 903M 0 903M 0% /sys/fs/cgroup ├─cl-root 253 :0 0 17G 0 lvm /
/dev/mapper/cl-root 17G 3.4G 14G 20% / └─cl-swap 253:1 0 2G 0 lvm [SWAP]
/dev/sda1 976M 139M 771M 16% /boot sdb 8:16 0 2G 0 disk
tmpfs 181M 0 181M 0% /run/user/0 └─sdb1 8:17 0 2G 0 part
例:生成用户名:密码文件
[04:34:53 root@C8-3-55 ~]#echo baipz{1..10} | tr -s " " "
" > username.txt;echo 12345{a..j} | tr -s " " "
" > passwd.txt
[04:57:23 root@C8-3-55 ~]#paste -d : username.txt passwd.txt
baipz1:12345a
baipz2:12345b
baipz3:12345c
baipz4:12345d
baipz5:12345e
baipz6:12345f
baipz7:12345g
baipz8:12345h
baipz9:12345i
baipz10:12345j
[04:57:23 root@C8-3-55 ~]#paste -d : username.txt passwd.txt | chpasswd ## 可以批量修改用户密码
例:计算1连加到100
[05:00:19 root@C8-3-55 ~]#seq 100 | paste -s -d +
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[04:57:34 root@C8-3-55 ~]#seq 100 | paste -s -d + | bc
5050