Linux centos7 shell特殊符号cut命令sort_wc_uniq命令tee_tr_split命令shell特殊符号
Posted Stripling悟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux centos7 shell特殊符号cut命令sort_wc_uniq命令tee_tr_split命令shell特殊符号相关的知识,希望对你有一定的参考价值。
一、shell特殊符号、cut命令
*任意字符
[[email protected] ~]# ls /tmp/*.txt
/tmp/1.txt /tmp/2.txt /tmp/q.txt
[[email protected] ~]#
?任意一个字符
[[email protected] ~]# mkdir /tmp/test1
[[email protected] ~]# touch /tmp/test1
[[email protected] ~]# ls -d /tmp/test?
/tmp/test1
[[email protected] ~]#
#注释字符
[[email protected] ~]# sdx=233 #assa
[[email protected] ~]# echo $sdx
233
[[email protected] ~]#
\脱义字符
[[email protected] ~]# ls -d test\*
ls: 无法访问test*: 没有那个文件或目录
[[email protected] ~]#
|管道符,管道后边可用多种命令
[[email protected] ~]# cat 1.txt |wc -l
cut用来截取一个字段,格式 cut -d ‘分隔字符‘ [-cf] n n代表数字
-d:后边跟分隔字符,分隔字符要用单引号括起来
-c:后边接第几个字符
-f:后边接第几个区块
[[email protected] ~]# cat /etc/passwd |head 打印出文件
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]#
[[email protected] ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1 截取前2行第1个
root
bin
[[email protected] ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2 截取前2行第1、2个
root:x
bin:x
[[email protected] ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3 截取前2行第-到3个
root:x:0
bin:x:1
[[email protected] ~]#
[[email protected] ~]# cat /etc/passwd |head -2 |cut -c 4 截取前2行指定第4个字符
t
:
[[email protected] ~]#
二、sort、wc、uniq命令
sort排序命令,格式sort [-t 分隔符] [-kn1,n2] [-nru] n1、n2为数字。
-t 后边跟分隔符
-n表示用纯数字排序
-r表示反向排序
-u表示去重复
-kn1,n2表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
[[email protected] ~]# sort /etc/passwd |head -2 |cut -c 4
:
:
[[email protected] ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
davery:x:1000:1003::/home/davery:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
uaer1:x:1001:1004::/home/uaer1:/bin/bash
user2:x:1002:1005::/home/user2:/bin/bash
user3:x:1006:1006::/home/user3:/bin/bash
user4:x:1007:898::/home/user4:/bin/bash
user6:x:1008:898::/home/user6:/bin/bash
默认按照abcd...排序
[[email protected] ~]# head /etc/passwd >> 0.txt
[[email protected] ~]# sort 0.txt
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
[[email protected] ~]#
[[email protected] ~]# head -n5 /etc/passwd|sort 从首字母符向后依次按照ASCII码值进行比较,最后按照升序排列
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[[email protected] ~]#
[[email protected] ~]# head -n5 /etc/passwd |sort -t: -k3 -n 第三个区块按照数字升序排列
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[[email protected] ~]# ^C
[[email protected] ~]# head -n5 /etc/passwd |sort -t: -k3 -n -r 第三个区块按照数字反向排列
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[[email protected] ~]#
[[email protected] ~]# sort -n 0.txt 从首字母符向后依次按照ASCII码值进行比较,最后按照升序排列
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
[[email protected] ~]#
[[email protected] ~]# sort -nr 0.txt 反向排序
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
wc命令
用于统计文档的行数、字符数或词数
-l统计行数
-m统计字符
-w统计词数
[[email protected] ~]# wc -l /etc/passwd
25 /etc/passwd
[[email protected] ~]# wc -m /etc/passwd
1092 /etc/passwd
[[email protected] ~]# wc -w /etc/passwd
33 /etc/passwd
[[email protected] ~]#
uniq命令,用来删除重复的行。
-c 统计重复的行数
[[email protected] ~]# vi 0.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
ioperator:x:11:0:operator:/root:/sbin/nologin
21213
123213
222
222
222
[[email protected] ~]#
[[email protected] ~]# uniq 0.txt 222重复的就被删除了
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
ioperator:x:11:0:operator:/root:/sbin/nologin
21213
123213
222
[[email protected] ~]#
[[email protected] ~]# sort 0.txt |uniq -c
1
1 123213
1 21213
3 222
1 adm:x:3:4:adm:/var/adm:/sbin/nologin
1 bin:x:1:1:bin:/bin:/sbin/nologin
1 daemon:x:2:2:daemon:/sbin:/sbin/nologin
1 halt:x:7:0:halt:/sbin:/sbin/halt
1 ioperator:x:11:0:operator:/root:/sbin/nologin
1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
1 root:x:0:0:root:/root:/bin/bash
1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
1 sync:x:5:0:sync:/sbin:/bin/sync
[[email protected] ~]#
三、tee、tr、split命令
tee后边跟文件名,作用类似于重定向>,但它比重定向多一个功能,即把文件写入后面所跟的文件时,还会做显示。
[[email protected] ~]# sort 0.txt |uniq -c |tee 2.txt 把前面的东西重定向到2.txt并显示出来
1
1 123213
1 21213
3 222
1 adm:x:3:4:adm:/var/adm:/sbin/nologin
1 bin:x:1:1:bin:/bin:/sbin/nologin
1 daemon:x:2:2:daemon:/sbin:/sbin/nologin
1 halt:x:7:0:halt:/sbin:/sbin/halt
1 ioperator:x:11:0:operator:/root:/sbin/nologin
1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
1 root:x:0:0:root:/root:/bin/bash
1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
1 sync:x:5:0:sync:/sbin:/bin/sync
[[email protected] ~]# cat 2.txt
1
1 123213
1 21213
3 222
1 adm:x:3:4:adm:/var/adm:/sbin/nologin
1 bin:x:1:1:bin:/bin:/sbin/nologin
1 daemon:x:2:2:daemon:/sbin:/sbin/nologin
1 halt:x:7:0:halt:/sbin:/sbin/halt
1 ioperator:x:11:0:operator:/root:/sbin/nologin
1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
1 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
1 root:x:0:0:root:/root:/bin/bash
1 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
1 sync:x:5:0:sync:/sbin:/bin/sync
[[email protected] ~]#
tr命令,用于替换字符,常用来处理文档中出现的特殊符号,
-d 删除某个字符,后边要跟删除的字符
-s 删除重复的字符
[[email protected] ~]# echo "davery" |tr ‘[d]‘ ‘[D]‘ 只跟换d为D
Davery
[[email protected] ~]#
[[email protected] ~]# echo "davery" |tr ‘d‘ ‘D‘ 只跟换d为D
Davery
[[email protected] ~]#
[[email protected] ~]# echo "davery" |tr ‘[a-z]‘ ‘[A-Z]‘ 全部换大写
DAVERY
[[email protected] ~]#
[[email protected] ~]# echo "davery" |tr ‘[a-z]‘ ‘[1]‘
]1]]]]
[[email protected] ~]# echo "davery" |tr ‘[a-z]‘ ‘1‘ 变为数字1
111111
[[email protected] ~]#
split命令
用于切割文件
-b表示根据大小来分隔文档,默认单位为byte,还有M k
-l根据行数来分隔文档
[[email protected] ~]# find /etc/ -type f -name "*conf" -exec cat {} >> 0.txt \;
[[email protected] ~]# ls
0.tx~ 0.txt.gz 1.txt 3.txt 5036 anaconda-ks.cfg.01 a.txt davery~ uear1
0.txt 0_txt.swp 2.txt 4913 5159 anaconda-ks.cfg.1 davery make user1
[[email protected] ~]#
[[email protected] ~]# du -sh 0.txt
212K 0.txt
[[email protected] ~]#
0.tx~ 0.txt.gz 1.txt 3.txt 5036 anaconda-ks.cfg.01 a.txt davery~ test user1
0.txt 0_txt.swp 2.txt 4913 5159 anaconda-ks.cfg.1 davery make uear1
[[email protected] ~]# split -b 1000 0.txt
[[email protected] ~]# ls
0.tx~ a.txt xaf xar xbd xbp xcb xcn xcz xdl xdx xej xev xfh xft xgf xgr xhd xhp xib
0.txt davery xag xas xbe xbq xcc xco xda xdm xdy xek xew xfi xfu xgg xgs xhe xhq xic
0.txt.gz davery~ xah xat xbf xbr xcd xcp xdb xdn xdz xel xex xfj xfv xgh xgt xhf xhr xid
0_txt.swp make xai xau xbg xbs xce xcq xdc xdo xea xem xey xfk xfw xgi xgu xhg xhs xie
1.txt test xaj xav xbh xbt xcf xcr xdd xdp xeb xen xez xfl xfx xgj xgv xhh xht xif
2.txt uear1 xak xaw xbi xbu xcg xcs xde xdq xec xeo xfa xfm xfy xgk xgw xhi xhu xig
3.txt user1 xal xax xbj xbv xch xct xdf xdr xed xep xfb xfn xfz xgl xgx xhj xhv xih
4913 xaa xam xay xbk xbw xci xcu xdg xds xee xeq xfc xfo xga xgm xgy xhk xhw xii
5036 xab xan xaz xbl xbx xcj xcv xdh xdt xef xer xfd xfp xgb xgn xgz xhl xhx xij
5159 xac xao xba xbm xby xck xcw xdi xdu xeg xes xfe xfq xgc xgo xha xhm xhy
anaconda-ks.cfg.01 xad xap xbb xbn xbz xcl xcx xdj xdv xeh xet xff xfr xgd xgp xhb xhn xhz
anaconda-ks.cfg.1 xae xaq xbc xbo xca xcm xcy xdk xdw xei xeu xfg xfs xge xgq xhc xho xia
[[email protected] ~]#
split -b 1000 0.txt abc 指定名字
四、shell特殊符号
$变量前面的标识符,结合!来使用
[[email protected] ~]# ls 0.txt
0.txt
[[email protected] ~]# !$
0.txt
;符号如果想在一行执行多个命令,则使用;分隔
[[email protected] ~]# mkdir test1 ; touch 0.1txt ; touch 0.2txt ; touch 0.3txt
~ 表示用户家的目录,root用户的家目录/root,普通用户/home/username
[[email protected] ~]# cd ~
[[email protected] ~]# pwd
/root
[[email protected] ~]# su davery
[[email protected] root]$ cd ~
[[email protected] ~]$ pwd
/home/davery
[[email protected] ~]$
&把命令放到后台执行需要加&
[[email protected] /]# sleep 23 &
[1] 2606
[[email protected] /]# jobs
[1]+ 运行中 sleep 23 &
[[email protected] /]#
重定向符号
>取代 、>>追加 、2>错误重定向 、2>>错误重定向追加
[ ]代表字符组合中的任意一个[0-9],[a-z A-Z],[abc]
&&和||
[[email protected] /]# ls 0.txt || wc -l 2.txt 表示或,两个命令其中一个能执行成就行
[[email protected] /]# ls 0.txt && wc -l 2.txt 前边命令成功才会执行后边命令
以上是关于Linux centos7 shell特殊符号cut命令sort_wc_uniq命令tee_tr_split命令shell特殊符号的主要内容,如果未能解决你的问题,请参考以下文章