目录
一.tr基本功能转换
1.格式
tr [选项]… SET1 [SET2]
SET 是一组字符串,一般都可按照字面含义理解
-d 删除
-s 压缩
-c 只留我匹配的字符
[root@localhost ~]# tr 1234 qwer
1u5h3v6k2p4n
qu5hev6kwprn
#只要出现1234的数字就对应换成qwer#
[root@localhost ~]# tr 12345 ert
123456789
erttt6789
#用ert去替换12345数字,但是因为替换内容不够5位,所以不够位数上都用最后一位t补全#
在3.txt中找到4就删除
[root@localhost ~]# cat /zhou/3.txt|tr -d 4
656
33232
5353533
3232
32322
552332
323235
55336
3232
把大空格替换成小空格
[root@localhost ~]# tr -s " "
4 6 3 7
4 6 3 7
在输入中寻找指定的字符,使其相邻重复的合并成一个字符
[root@localhost ~]# tr -s "3"
3333
3
63 8483 9373 37827
63 8483 9373 37827
33 763 8623
3 763 8623
二.管道符的应用
A|B,A执行完的结果传给B进行完成,单向,不可逆的
50个自然数连加
[root@localhost ~]# seq -s+ 50|bc
1275
生成随机密码
[root@localhost ~]# cat /dev/urandom |tr -dc '[:alnum:]' |head -c12
UuDYma0H39TP[root@localhost ~]# cat /dev/urandom |tr -dc '[:alnum:]' |head -c12
Fv7gxQvffptl
在1.txt文件中找到a-z小写字母,其他都删除
[root@localhost ~]# cat /zhou/1.txt |tr -c "[a-z]" " "
jgfghh fhfhhfdg gdfdgdgfgdfg gdfg tt t wt t er gfdf h fh y er rgdf g df [root@localhost ~]#
加s对空白地方进行压缩
[root@localhost ~]# cat /zhou/1.txt |tr -sc "[a-z]" " "
jgfghh fhfhhfdg gdfdgdgfgdfg gdfg tt t wt t er gfdf h fh y er rgdf g df [root@localhost ~]#
三.cut命令
cut 命令可以提取文本文件数据的指定列
格式
cut [选项]… [文件]…
常用选项
-d DELIMITER: 指明分隔符,默认tab
-f 想要获取的字段
#: 第#个字段,例如 3
#,#[,#]:离散的多个字段,例如 1,4,6
#-#:连续的多个字段, 例如 1-7
混合使用:1-4,7
-c 取字符
在用户文件中找到最后一行,提取1,3段
[root@localhost ~]# cat /etc/passwd|tail -n 1|cut -d: -f1,3
zhou:1000
[root@localhost ~]# ll |tail -n +2
-rw-------. 1 root root 2193 Sep 17 09:41 anaconda-ks.cfg
-rw-r--r--. 1 root root 141 Sep 17 14:53 bc
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Desktop
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Documents
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Downloads
-rw-r--r--. 1 root root 2241 Sep 17 09:52 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Music
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Pictures
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Public
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Templates
drwxr-xr-x. 2 root root 6 Sep 17 09:52 Videos
想要只显示3列和9列,首先从第2行开始,压缩所有空格为一个空格,并以空格为标识符,
[root@localhost ~]# ll |tail -n +2|tr -s " "|cut -d" " -f3,9
root anaconda-ks.cfg
root bc
root Desktop
root Documents
root Downloads
root initial-setup-ks.cfg
root Music
root Pictures
root Public
root Templates
root Videos
只要查看各分区使用百分比
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 31441920 3560892 27881028 12% /
devtmpfs 1916740 0 1916740 0% /dev
tmpfs 1932652 0 1932652 0% /dev/shm
tmpfs 1932652 9280 1923372 1% /run
tmpfs 1932652 0 1932652 0% /sys/fs/cgroup
/dev/sda1 15718400 182360 15536040 2% /boot
/dev/mapper/centos-home 15718400 33052 15685348 1% /home
/dev/mapper/centos-var 15718400 159124 15559276 2% /var
tmpfs 386532 4 386528 1% /run/user/42
tmpfs 386532 24 386508 1% /run/user/0
/dev/sr0 57192 57192 0 100% /run/media/root/VMware Tools
第一种 从第2行显示并压缩空格为1个空格,以空格为标识符,显示第五列,并删除%
[root@localhost ~]# df |tail -n +2|tr -s " " |cut -d " " -f5|tr -d %
12
0
0
1
0
2
1
2
1
1
100
第二种 从第二行显示,用%替换空格键并合并成一个,然后以%为标识符显示第5行
[root@localhost ~]# df|tail -n +2 |tr -s " " % |cut -d % -f5
第三种从第二行开始显示,并显示第53 54和55字符
[root@localhost ~]# df |tail -n +2 |cut -c53,54,55
12
0
0
1
0
2
1
2
1
1
100
字符可通过选择复制该行字符,在shell左下角会有显示字符位置