开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

shell特殊符号,cut、sort、wc、uniq、tee、tr、split命令

简介:
+关注继续查看

*代表0个或多个任意字符

[root@localhost ~]# ls *txt

11.txt  1.txt  22.txt  2.txt  aa.txt  a.txt  


?只代表一个任意字符

不管是数字还是字母,只要是一个字符的都能匹配出来

[root@localhost ~]# ls ?.txt

1.txt  2.txt  a.txt  b.txt

[root@localhost ~]# ls ?txt

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


注释符号#,这个符号后面的内容都会被忽略

[root@localhost ~]# a=123 #456

[root@localhost ~]# echo $a

123


脱义字符 \,这个字符会将后面的特殊符号(如*)还原为普通字符。

[root@localhost ~]# ls -ld test*

drwxr-xr-x. 2 root root 6 11月 17 14:06 test

[root@localhost ~]# ls -ld test\*

ls: 无法访问test*: 没有那个文件或目录


管道符 | ,它的作用是将前面命令的输出作为后面命令的输入。并不是所有命令都可以用在管道符中,常用命令:cat、less、head、tail、grep、cut、sort、wc、uniq、tr、split、sed、awk等。

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

1


cut命令

cut命令用来截取某一个字段。

格式为:cut -d‘分隔符 ’-[fc]n,n为数字。

-d:后面跟分隔符,分隔符要用单引号引起来。

-f:后面接的是第几个区块

-c:后面接的是第几个字符

(-c不需要和-f,-d需要-f)


[root@localhost ~]# head -5 /etc/passwd | cut -d ':' -f 1-4

root:x:0:0

bin:x:1:1

daemon:x:2:2

adm:x:3:4

lp:x:4:7

-d后的冒号为分隔符,-f 1-4表示截取1-4段


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

root

bin:

daem

adm:

lp:x

-c后可以是1个数字,也可以是区间1-4,还可以是多个数字n1,n2,n3(用逗号隔开)。

[root@localhost ~]# head -5 /etc/passwd | cut -c 1,6,8

rx0

b::

dnx

a::

l47



sort命令

sort命令用作排序。

格式为:sort -[-t 分隔符] [-kn1,n2] [-nru] n1,n2为数字。

-t:后面跟分割字符,作用和cut -d一样。

-n:表示使用纯数字排序。

-r:表示反向排序。

-u:表示去除重复。

-kn1,n2:表示n1-n2区间排序,也可以只写-kn1。


如果sort不加任何选项,则凶首字符向后一次按ASCII码值进行比较,最后将它们按升序输出。

[root@localhost ~]# head -n 5 /etc/passwd | sort

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


-t选项后跟分隔符,-k选项后跟一个数字表示对第几个区域的字符串排序,-n选项则表示使用纯数字排序。

[root@localhost ~]# head -n 5 /etc/passwd | sort -t ':' -k 3 -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


-k选项后面跟数字n1,n2表示对n1和n2这个区域内的字符串排序,-r反向排序。

[root@localhost ~]# head -n 5 /etc/passwd | sort -t ':' -k 3,5 -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



wc命令

wc命令用于统计文档的行数、字符数、或词数。

-l 统计行数

-w 统计词数

-m 统计字符数

wc后不跟任何参数直接跟文档则会把行数、词数、字符数依次输出。

[root@localhost ~]# wc /etc/passwd

 24   44 1128 /etc/passwd

[root@localhost ~]# wc -l /etc/passwd

24 /etc/passwd

[root@localhost ~]# wc -w /etc/passwd

44 /etc/passwd

[root@localhost ~]# wc -m /etc/passwd

1128 /etc/passwd



uniq命令

uniq命令用来删除重复行,常用选项-c,表示统计重复的行数,并把行数写在前面。

使用uniq前,必须要先给文件排序(sort),否则不管用。

855ac6ab2e1b7e8db6ad0f155bb02c2e.png


tee命令

tee命令后根文件名,起作用类似于输出重定向(>),它还能把写入后面所跟文件时,还显示在屏幕上。常用于管道符 | 后。

-a:向文件中重定向时使用追加模式

3e236bf86520261a3bba15cb3b8c4e62.png

使用-a参数。追加。

ad9ba12937b87690a89b473af8769537.png


tr命令

tr命令用于替换字符,常用来处理文档中出现的特殊符号。

-d 表示删除某个字符。


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

huAngdAlinux  #将字符串中的a替换成A

[root@localhost ~]# echo "huangdalinux" | tr 'an' 'AN'

huANgdAliNux  #将字符串中的a和n替换成A和N

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

HUANGDALINUX  #将字符串中的小写字母替换成大写字母


使用-d参数,删除字符串中的某个字符

[root@localhost ~]# echo "huangdalinux" | tr -d 'a'

hungdlinux

[root@localhost ~]# echo "huangdalinux" | tr -d 'a,u'

hngdlinx

s

plit命令

split命令用于切割文档,常用选项为-b和-l

-b:表示依据大小来分割文档,默认单位为byte。

6036ba9d73824195df9e8c7bed891411.png

6f31d9ae1d8988b865fe011d9b6bc64f.png

spacer.gif

-l:表示依据行数来分割文档。

spacer.gif4df51084bee1ea5427abec3cdb16fe3b.png

指定目标文件名。

spacer.gif529a4e34f89593dd20803917b09f926a.png


特殊符号$,用作变量前面的标识符。


特殊符号;。如果想在一行中运行两个或两个以上的命令,需要再命令之间加符号;。


特殊符号~。表示用户的家目录,root用户为/root,普通用户为/home/用户名/


特殊符号&。可以把一条命令放在后台执行。接在命令后。


输出重定向>,输出重定向追加>>,错误重定向2>,错误重定向追加2>>, 正确和错误输出都重定向&>.正确和错误输出都重定向追加&>>


中括号[],中括号内为字符组合,代表字符组合中的任意一个,可以是一个范围。


特殊符号&&和||

command1;command2

使用;时,不管command1是否执行成功,都会执行command2。

command1&&command2

使用&&时,只有command1执行成功,才会执行command2。

command1||command2

使用||时,command1执行成功后则command2不执行,否则执行command2,即command1和command2中总有一条命令会执行。




本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/1982863

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
shell编程前奏,Linux文本处理工具汇总grep、cut、sort、tee、diff、paste、tr(二)
shell编程前奏,Linux文本处理工具汇总grep、cut、sort、tee、diff、paste、tr(二)
0 0
shell编程前奏,Linux文本处理工具汇总grep、cut、sort、tee、diff、paste、tr(一)
shell编程前奏,Linux文本处理工具汇总grep、cut、sort、tee、diff、paste、tr(一)
0 0
经典算法之希尔排序(Shell Sort)
经典算法之希尔排序(Shell Sort)
0 0
Shell 脚本中常用命令——Sort、Uniq、Cut、Seq
Shell 脚本中常用命令——Sort、Uniq、Cut、Seq
0 0
希尔排序(Shell Sort)
算法介绍 算法描述 动图演示 算法分析 代码实现 参考
0 0
Linux Shell sort排序常用命令
1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$ cat seq.txt banana apple pear orange [rocrocket@rocrocket programming]$ sort seq.txt apple banana orange pear 2 sort的-u选项 它的作用很简单,就是在输出行中去除重复行。
993 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Shell 脚本速查手册
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载