cut最后几位 shell_shell特殊符_cut截取,sort排序,shell特殊符号

cut 命令

cut作用:截取字符串

用法如下:cat /etc/passwd |head -2 |cut -d ":" -f 1,2,4

在管道符后面进行截取前面命令的输出。

cut -d " " 指定分割条件,比如 ":" ,就是以:进行分割。每到一个:就是一段。

-f 是指定截取哪一段。后面跟数字几,就是截取几段。如果想1到4段都要。就是-f 1-4

[root@localhost ~]# cat /etc/passwd |head -2

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

[root@localhost ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1

root

bin

[root@localhost ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2

root:x

bin:x

[root@localhost ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2,4

root:x:0

bin:x:1

还有一种用法是 : -c,指定截取第几位,比如截取etc/passwd 的第四位。

[root@localhost ~]# cat /etc/passwd |head -2 |cut -c 4

t

:

排序命令: sort

用法: sort 加想要查看的文件

排序方式:没有环境变量影响的话,默认按照ASCLL码排序。

新建一个文本,cat内容如下:

[root@localhost ~]# cat 1.txt

43

35

67

907890

hrshs

hsga

agsfh

.,12125

43

&%#@

^$%$

@%#

用sort进行排序后内容如下:

[root@localhost ~]# sort 1.txt

^$%$

@%#

&%#@

.,12125

35

43

43

67

907890

agsfh

hrshs

hsga

sort -n 以数字进行排序,其他数字以外的字符都当作为0,排在最前面。

[root@localhost ~]# sort -n 1.txt

^$%$

@%#

&%#@

.,12125

agsfh

hrshs

hsga

35

43

43

67

907890

sort -r 反序显示

sort -t 分隔符,指定段排序(少用)

-t 用法 :sort -t 指定分隔符 -kn1,n2

wc统计命令

wc -l 统计行数

[root@localhost ~]# wc -l 1.txt

12 1.txt

wc -m 统计字符数(包括换行符$)

[root@localhost ~]# wc -m 1.txt

58 1.txt

wc -w 统计词数

[root@localhost ~]# wc -w 1.txt

12 1.txt

uniq 去重复

新建2.txt进行实验。

[root@localhost ~]# cat 2.txt

1111

111

1111

1111

2222

2222

2222

3333

3333

3333

4

5

[root@localhost ~]# unip 2.txt

-bash: unip: 未找到命令

[root@localhost ~]# uniq 2.txt

1111

111

1111

2222

3333

4

5

结果发现是只有相邻的重复项才会去重,所以在去重的时候最好先排序。

[root@localhost ~]# sort 2.txt |uniq

111

1111

2222

3333

4

5

[root@localhost ~]# sort 2.txt |uniq -c

1 111

3 1111

3 2222

3 3333

1 4

1 5

[root@localhost ~]#

tee 和 >类似,重定向的同时还在屏幕显示(需要在前面加上管道符)

用法如下:

[root@localhost ~]# sort 2.txt |uniq -c |tee a.txt

1 111

3 1111

3 2222

3 3333

1 4

1 5

[root@localhost ~]# cat a.txt

1 111

3 1111

3 2222

3 3333

1 4

1 5

tee -a 追加并显示内容。

tr 替换字符命令。

用法如下:

[root@localhost ~]# echo "aminglinux" |tr 'a' 'A'

Aminglinux

[root@localhost ~]# echo "aminglinux" |tr '[anx]' '[ANX]'

AmiNgliNuX

[root@localhost ~]# echo "aminglinux" |tr '[a-z]' '[A-Z]'

AMINGLINUX

split 切割命令

用法:split -b 100M bigfile 切割bigfile文件,以文件大小大小进行切割,每100M切割一份

-b选项不指定大小的话默认大小是字节。

用法:split -l 1000 bigfile 切割bigfile文件,以行数多少进行切割,每1000行切割一份

先做一个大文件准备切割。

[root@localhost ~]# find /etc/ -type f -name "*conf" -exec cat {} >> aa.txt \;

[root@localhost ~]# du -sh aa.txt

160Kaa.txt

然后用split -b 切割成1k每份。切割之后ls查看。

[root@localhost ~]# split -b 1000 aa.txt

[root@localhost ~]# ls

1.txt xab xah xan xat xaz xbf xbl xbr xbx xcd xcj xcp xcv xdb xdh xdn xdt xdz xef xel xer xex xfd xfj xfp xfv xgb

2.txt xac xai xao xau xba xbg xbm xbs xby xce xck xcq xcw xdc xdi xdo xdu xea xeg xem xes xey xfe xfk xfq xfw xgc

aa.txt xad xaj xap xav xbb xbh xbn xbt xbz xcf xcl xcr xcx xdd xdj xdp xdv xeb xeh xen xet xez xff xfl xfr xfx xgd

anaconda-ks.cfg xae xak xaq xaw xbc xbi xbo xbu xca xcg xcm xcs xcy xde xdk xdq xdw xec xei xeo xeu xfa xfg xfm xfs xfy

a.txt xaf xal xar xax xbd xbj xbp xbv xcb xch xcn xct xcz xdf xdl xdr xdx xed xej xep xev xfb xfh xfn xft xfz

xaa xag xam xas xay xbe xbk xbq xbw xcc xci xco xcu xda xdg xdm xds xdy xee xek xeq xew xfc xfi

“split -b 大小 文件 切割后文件名” 指定切割后文件命前缀。

[root@localhost ~]# split -b 1000 aa.txt aaa.

[root@localhost ~]# ls

1.txt aaa.ai aaa.as aaa.bc aaa.bm aaa.bw aaa.cg aaa.cq aaa.da aaa.dk aaa.du aaa.ee aaa.eo aaa.ey aaa.fi aaa.fs aaa.gc

2.txt aaa.aj aaa.at aaa.bd aaa.bn aaa.bx aaa.ch aaa.cr aaa.db aaa.dl aaa.dv aaa.ef aaa.ep aaa.ez aaa.fj aaa.ft aaa.gd

aaa.aa aaa.ak aaa.au aaa.be aaa.bo aaa.by aaa.ci aaa.cs aaa.dc aaa.dm aaa.dw aaa.eg aaa.eq aaa.fa aaa.fk aaa.fu aa.txt

aaa.ab aaa.al aaa.av aaa.bf aaa.bp aaa.bz aaa.cj aaa.ct aaa.dd aaa.dn aaa.dx aaa.eh aaa.er aaa.fb aaa.fl aaa.fv anaconda-ks.cfg

aaa.ac aaa.am aaa.aw aaa.bg aaa.bq aaa.ca aaa.ck aaa.cu aaa.de aaa.do aaa.dy aaa.ei aaa.es aaa.fc aaa.fm aaa.fw a.txt

aaa.ad aaa.an aaa.ax aaa.bh aaa.br aaa.cb aaa.cl aaa.cv aaa.df aaa.dp aaa.dz aaa.ej aaa.et aaa.fd aaa.fn aaa.fx

aaa.ae aaa.ao aaa.ay aaa.bi aaa.bs aaa.cc aaa.cm aaa.cw aaa.dg aaa.dq aaa.ea aaa.ek aaa.eu aaa.fe aaa.fo aaa.fy

aaa.af aaa.ap aaa.az aaa.bj aaa.bt aaa.cd aaa.cn aaa.cx aaa.dh aaa.dr aaa.eb aaa.el aaa.ev aaa.ff aaa.fp aaa.fz

aaa.ag aaa.aq aaa.ba aaa.bk aaa.bu aaa.ce aaa.co aaa.cy aaa.di aaa.ds aaa.ec aaa.em aaa.ew aaa.fg aaa.fq aaa.ga

aaa.ah aaa.ar aaa.bb aaa.bl aaa.bv aaa.cf aaa.cp aaa.cz aaa.dj aaa.dt aaa.ed aaa.en aaa.ex aaa.fh aaa.fr aaa.gb

shell 特殊符号

$变量前缀,!$组合,正则里面表示行尾

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

~ 用户家目录,后面正则表达式表示匹配符

& 放到命令后面,会把命令丢到后台

> >> 2> 2>> &>

[] 指定字符中的一个

||和&&,用于命令之间

|| :如果||前面的命令提示成功,||后面的命令就不会执行,如果前面命令执行不成功,才会执行||后面的命令。

[root@localhost ~]# ls 1a.txt || wc -l 1.txt

ls: 无法访问1a.txt: 没有那个文件或目录

25 1.txt

[root@localhost ~]# ls 1.txt || wc -l 1.txt

1.txt

&&:如果前面的命令执行成功后,才会执行后面的命令,如果前面命令错了,就不会执行后面的命令了,

[root@localhost ~]# ls 1.txt && wc -l 1.txt

1.txt

25 1.txt

[root@localhost ~]# ls 1a.txt && wc -l 1.txt

ls: 无法访问1a.txt: 没有那个文件或目录

扩展学习:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值