1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号下

shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号下

时间:2022-11-03 23:36:21

相关推荐

shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号下

独角兽企业重金招聘Python工程师标准>>>

shell特殊符号cut命令

cut 分割,-d 分隔符 -f 指定段号 -c 指定第几个字符sort 排序, -n 以数字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2wc -l 统计行数 -m 统计字符数 -w 统计词uniq 去重, -c统计行数tee 和>类似,重定向的同时还在屏幕显示tr 替换字符,tr 'a' 'b',大小写替换tr '[a-z]' '[A-Z]'split 切割,-b大小(默认单位字节),-l行数

cut命令

cut命令用来截取某个字符串格式:cut –d “分割符” 文件名-d:后面跟分割字符,分割字符用双引号括起来;-f:后面跟接第几段字符串-c:后面接第几个字符截取第1到第3段

[root@linux-128 ~]# head -5 1.txt |cut -d ":" -f 1-3root:x:0bin:x:1daemon:x:2adm:x:3lp:x:4

截取第1段和第3段

[root@linux-128 ~]# head -5 1.txt |cut -d ":" -f 1,3root:0bin:1daemon:2adm:3lp:4

截取第2个字符

[root@linux-128 ~]# head -5 1.txt |cut -c 2oiadp

截取第2个字符到第5个字符

[root@linux-128 ~]# head -5 1.txt |cut -c 2-5oot:in:xaemodm:xp:x:

sort命令

sort命令用做排序,格式sort [-t 分割符] [-kn1,n2] [-nur],n1,n2指的是数字-t 分割符-k 按第几列排序;区间范围用逗号-k3,5-n 按数字排序-r 反序排序,按从打到小排序-u 去重复-un 字母开头的会识别成重复内容,如skj1 a weotj 都会认为是重复内容,只显示数字内容sort 不加任何选项,从首行字符向后,依次按ASCII码值进行比较,按升序排序

[root@linux-128 ~]# vim 2.txt111111111111aaa121!@#$@1231asdababababadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinroot:x:0:0:root:/root:/bin/bash

以数字排序

[root@linux-128 ~]# sort -n 2.txt!@#$@123ababababadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinroot:x:0:0:root:/root:/bin/bash1asd111111111111aaa121

注意:如果有字母或者特殊符号,在数字排序中,都默认看成0.反向排序

[root@linux-128 ~]# sort -nr 2.txt121111aaa1111111111asdroot:x:0:0:root:/root:/bin/bashlp:x:4:7:lp:/var/spool/lpd:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinabababab!@#$@123

去重复,这里把字母都看成了0,然后去重复。

[root@linux-128 ~]# sort -nu 2.txtabab1asd111121

wc命令

wc命令用于统计文档的行数,字符数,单词数。-l 统计行数-m统计字符数-w统计单词数查看文件3.txt 行数

[root@linux-128 ~]# cat 3.txtabab1asd111121[root@linux-128 ~]# wc -l 3.txt4 3.txt

查看文件3.txt字符有多少个,$为行尾字符

[root@linux-128 ~]# cat -A 3.txtabab$1asd$111$121$[root@linux-128 ~]# wc -m 3.txt18 3.txt

-w统计单词,它是以空格或者空白字符来分割。

[root@linux-128 ~]# cat 3.txtabab1asd111121[root@linux-128 ~]# wc -w 3.txt4 3.txt

如果wc后面不加任何选项,直接跟文档,则会把行数,单词数,字符数依次输出。

[root@linux-128 ~]# wc 3.txt4 4 18 3.txt

uniq命令

uniq命令用来删除重复的行,通常和sort连在一起使用-c选项比较常用,它表示统计重复的行数,并把行数写在前面

[root@linux-128 ~]# sort 2.txt111111111111aaa121!@#$@1231asdababababadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinroot:x:0:0:root:/root:/bin/bash

先排序然后删除重复行

[root@linux-128 ~]# sort 2.txt |uniq -c3 1111 111aaa1 1211 !@#$@1231 1asd2 abab1 adm:x:3:4:adm:/var/adm:/sbin/nologin1 bin:x:1:1:bin:/bin:/sbin/nologin1 daemon:x:2:2:daemon:/sbin:/sbin/nologin1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin1 root:x:0:0:root:/root:/bin/bash[root@linux-128 ~]# sort 2.txt |uniq111111aaa121!@#$@1231asdababadm:x:3:4:adm:/var/adm:/sbin/nologinbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinroot:x:0:0:root:/root:/bin/bash

tee命令

tee命令后面文件名,其作用类似于重定向>;但是它比重定向多一个显示在屏幕上的功能;

[root@linux-128 ~]# cat 3.txt >4.txt[root@linux-128 ~]# cat 3.txt |tee 4.txtabab1asd111121

tee –a 相当于追加重定向>>;它多了一个显示在屏幕上的功能

[root@linux-128 ~]# cat 3.txt |tee -a 4.txtabab1asd111121[root@linux-128 ~]# cat 3.txt |tee -a 4.txtabab1asd111121[root@linux-128 ~]# cat 4.txtabab1asd111121abab1asd111121abab1asd111121

命令tr

tr命令用于替换字符

[root@linux-128 ~]# cat 3.txt |tr 'a' 'A'AbAb1Asd111121[root@linux-128 ~]# cat 3.txt |tr '[a-z]' '[A-Z]'ABAB1ASD111121

split命令

split 用于分割文档split -l 按行来分割split -b 按大小来分割split -b

[root@linux-128 ~]# mkdir test[root@linux-128 ~]# cd test[root@linux-128 test]# find /etc/ -type f -name "*.conf" -exec cat {} >1.txt \;[root@linux-128 test]# du -sh 1.txt252K1.txt[root@linux-128 test]# split -b 50k 1.txt[root@linux-128 test]# ls1.txt xaa xab xac xad xae xaf

split –l

[root@linux-128 test]# wc -l 1.txt6479 1.txt[root@linux-128 test]# split -l 1000 1.txt[root@linux-128 test]# ls1.txt xaa xab xac xad xae xaf xag

split 后面如果不指定文件名,则会以xaa,xab。。。这样的文件名来存取切割后的文件指定目标分割文件名 为abc.

[root@linux-128 test]# split -l 1000 1.txt abc.[root@linux-128 test]# ls1.txt abc.aa abc.ab abc.ac abc.ad abc.ae abc.af abc.ag

特殊符号

$ 变量前缀,!$组合,正则里面表示行尾;多条命令写到一行,用分号分割~ 用户家目录,后面正则表达式表示匹配符& 放到命令后面,会把命令丢到后台重定向 > 追加重定向>> 错误重定向2> 错误追加重定向2>> 正确和错误重定向&>[ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]|| 和 && ,用于命令之间$:可以作为变量前面的标示符,可以和!结合起来使用,在正则里面表示行尾

[root@linux-128 test]# ls /root11.txt1231.txt 2.txt 3.txt anaconda-ks.cfg d6z11.txt.bak 1a.txt +2321.txt4.txt a.txt test121.log 23.txt 321.txt.bak ab.txt b.txt 工号.txt[root@linux-128 test]# ls !$ls /root11.txt1231.txt 2.txt 3.txt anaconda-ks.cfg d6z11.txt.bak 1a.txt +2321.txt4.txt a.txt test121.log 23.txt 321.txt.bak ab.txt b.txt 工号.txt

; 多条命令写在一行,用;分割

[root@linux-128 ~]# cat 2.txt;cat 3.txt111111aaa121111abab1asdabab!@#$@123111root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinabab1asd111121

~ 家目录,后面正则表示匹配符

重定向(正确) > ,会覆盖以前的内容

[root@linux-128 ~]# echo "121212">3.txt[root@linux-128 ~]# cat 3.txt121212

追加重定向(正确)>>

[root@linux-128 ~]# echo "ababab">>3.txt[root@linux-128 ~]# cat 3.txt121212Ababab

错误重定向 2>

[root@linux-128 ~]# cat 5.txt 2>6.txt[root@linux-128 ~]# cat 6.txtcat: 5.txt: 没有那个文件或目录

错误追加重定向 2>>

[root@linux-128 ~]# cat 6.txtcat: 5.txt: 没有那个文件或目录cat: 5.txt: 没有那个文件或目录

&> 错误和正确都重定向到某个文件里面。

[root@linux-128 ~]# cat 3.txt 5.txt &> 6.txt[root@linux-128 ~]# cat 6.txt121212abababcat: 5.txt: 没有那个文件或目录

shell中的链接符号 && || ;&& 前面命令执行成功后,才会执行后面的命令;如果前面执行不成功,后面命令不执行|| 前面的命令执行不成功,才会执行后面的命令;如果前面命令执行成功,后面命令不执行; 左边的命令成功与否,后边的命令都会执行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。