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
相关文章
|
3月前
|
Shell 数据安全/隐私保护
shell中的通配符 熟悉grep、cut、sort等小工具和shell中的通配符的使用
shell中的通配符 熟悉grep、cut、sort等小工具和shell中的通配符的使用
33 0
|
26天前
|
搜索推荐 算法 Shell
【Shell 命令集合 文档编辑 】Linux 排序命令 sort命令使用指南
【Shell 命令集合 文档编辑 】Linux 排序命令 sort命令使用指南
27 0
|
9月前
|
算法 搜索推荐 Shell
|
Shell
shell脚本中常见的一些特殊符号和作用详解
在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我们编写的代码更加简洁和高效,这里给大家汇总下: 1、{} 大括号:用法一:通配符扩展eg: ls my_{finger,toe}s这条命令相当于如下命令的组合:ls my_fingers my_toeseg: m...
1865 0
|
Shell
shell脚本中一些特殊符号
在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"string\"* **   ? : ^ $#   $@ `command`{}   [] [[]] ()   (()) ||   && {xx,yy,zz,.
1279 0
|
16天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
102 1
|
19天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
15 0
|
1天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
8 1
|
5天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
135 0