65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令

liunx的特殊符号

  • 代表字母或者数字 多个
    ? 任意一个字符
    "#" 注释
    \ 脱义字符
    | 管道符

1.* 代表任意个任意字符或者数字

[[email protected] /]# ls *.txt
1.txt
[[email protected] /]#

2.?任意一个字符

[[email protected] /]# ls ?.txt
1.txt
[[email protected] /]#

3.注释

[[email protected] /]# #11111
[[email protected] /]#
PS:意思就代表着说明

4、\脱义

[[email protected] /]# ls .txt
1.txt
[[email protected] /]# ls *.txt
ls: 无法访问
.txt: 没有那个文件或目录
[[email protected] /]#

5.管道符

[[email protected] /]# cat /etc/passwd|grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] /]#

cut命令

命令类型

文件管理

命令描述

用来截取某一个字段来显示出来

命令语法

cut 【参数】

参数

-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-c, --characters=列表 只选中指定的这些字符
-f :指定某一段

案例:查看/etc/passwd文件 以:为分割符 显示 第一段

[[email protected] /]# cat /etc/passwd|head |cut -d ":" -f 1
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[[email protected] /]#

sort命令

命令描述

此命令就是用来针对文档进行排序的

命令语法

sort [参数] [文件]

参数

-t 分割符:和cut -d 一样
-n :使用纯数字排序
-r :方向排序
-u :去重复
-k :-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

案例一:不加任何参数,会用ASCII码值进行比较,最后将他们按升序输出。

[[email protected] /]#
[[email protected] /]# head /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
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] /]#

WC命令

命令描述

用于统计

命令语法

wc [参数]

参数

-l:统计行数
-m:统计字符数
-w:统计词数

案例

[[email protected] /]# cat /etc/passwd |wc -l -m -w
19 29 883
[[email protected] /]# cat /etc/passwd |wc
19 29 883
[[email protected] /]#

PS:其实不需要加参数的

unip命令

命令描述

用来删除重复的行

命令语法

xxxxx|unip
参数
-c 统计重复的行数

案例

[[email protected] ~]# uniq testb.txt
111
222
111
333
[[email protected] ~]# sort testb.txt |uniq
111
222
333
[[email protected] ~]# sort testb.txt |uniq -c
2 111
1 222
1 333

tee命令

tee后面跟文件名,其作用类似于重定向>,比重定向多一个功能,把文件写入后面所跟的文件时并显示在屏幕上,通常用于管道符 |后。

案例

#echo “aaaaaaaaaaaaaaa” |tee testb.txt
aaaaaaaaaaaaaaa
#cat testb.txt
aaaaaaaaaaaaaaa

命令tr

tr用于替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的符号 ^M 。
选项:

参数

-d 表示删除某个字符,后面跟要删除的字符。
-s 表示删除重复的字符。
把小写字母变成大写字母,如tr’[a-z]’’[A-Z]’:

案例

#head –n2 /etc/passwd |tr’[a-z]’’[A-Z]’
ROOT:X:O:O:ROOT:/ROOT:/BIN/BASH
BIN:X:11:BIN:/BIN:/SBIN/NOLOGIN
还可以替换一个字符:
#grep ‘root’ /etc/passwd |tr ‘r’ ‘R’
Root:x:o:o:Root:/Root:/bin/bash
opeRatoR:x:11:0:opeRatoR:/Root:/sbin/nologin

命令split

命令描述

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

参数

-b 表示依据大小来分割文档,单位为byte
-l 表示依据行数来分割文档

案例

#split –b 500 passwd
#ls
passwd xaa xab xac xad xae

shell一些其他特殊符号

1、特殊符号$

$可以用作变量前面的标识符,还可以和!结合使用。

#cd ..
#ls testb.txt
testb.txt
#ls !$
ls testb.txt
testb.txt
!$表示上条命令的最后一个变量,本例中上条命令最后是testb.txt,那么在当前命令下输入!$则表示testb.txt。

2、特殊符号;

在一行命令中运行两个或两个以上的命令,需要在命令之间加符号;。

#mkdir testb.txt ; touch test1.txt ; touch test2.txt ; ls –d test* 创建目录、创建文件、列出目录

3、特殊符号~

符号~代表用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/username。

4、特殊符号&

把一条命令放到后台执行,则需要加上符号&,它通常用于命令运行时间较长的情况。比如,可以用在sleep后,如下所示:

#sleep 30 &
[1]3008
#jobs
[1]+ 运行中 sleep 30 &

5、重定向符号>、>>、2>和2>>

和>>分别表示取代和追加的意思。当我们运行一个命令报错时,报错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>,它们分别表示错误重定向和错误追加重定向。
#ls aaaa
ls:无法访问aaaa:没有那个文件或目录
#ls aaaa 2> /tmp/error
#cat /tmp/error
ls:无法访问aaaa:没有那个文件或目录
#ls aaaa 2>> /tmp/error
#cat /tmp/error
ls:无法访问aaaa:没有那个文件或目录
ls:无法访问aaaa:没有那个文件或目录

6、中括号[ ]

中括号内为字符组合,代表字符组合中的任意一个,还可以表示一个范围(1-3,a-z)。

#cd /tmp/10
#ls –d test*
test1.txt test2.txt testb.txt testdir
#ls –d test[1-3].txt
test1.txt test2.txt
#ls –d test[12b].txt
test1.txt test2.txt testb.txt
#ls –d test[1-9].txt
test1.txt test2.txt
#ls –d test[1-9a-z].txt
test1.txt test2.txt testb.txt

7、特殊符号&& ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&” 和 “||” 下面把这几种情况全列出:

command1 ; command2
command1 && command2
command1 || command2
使用 ”;” 时,不管command1是否执行成功都会执行command2;
使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;
使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

原文地址:http://blog.51cto.com/sdwaqw/2060908

时间: 2024-12-21 01:43:28

65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令的相关文章

Linux CentOS 7 shell中的特殊字符及与管道相关的命令(cut,sort,wc,uniq,tee,tr,split)

一. shell特殊符号cut命令 1.特殊符号 * :任意个任意字符 ? :任意单个字符# :注释\ :转义字符 | :管道符 2.几个和管道相关的命令 (1) cut cut 把文件分段 cat /etc/passwd cut -d: -f 3  /etc/passwd    cut -d: -f 3,6,5  /etc/passwd cut -d: -f 3-6  /etc/passwd cut -c 10 /etc/passwd   取第十个字符 cut -c 5-10 /etc/pas

cut,sort,wc,uniq,tee,tr,split,并且,和,或者

cut 把一个文件分段 cut -d:(指定分割符) -f(第几段) 3,4,5 /etc/passwd cut -c(截取第几个字符) 1-10 /etc/passwd sort 用来排序 sort -t:(指定分割符) -k3(第几段) -n(纯数字排序) /etc/passwd sort -t:(指定分割符) -k3,5(区间段用,号,不能用-) -n(纯数字排序) -r(反序排序) -u(去重复) /etc/passwd wc -l(文档有多少行数) 1.txt 2.txt wc -w(

linux命令, cut,sort,wc,uniq,tee 说明

 cut :截取某一个字段 语法:cut -d "分隔字符" [-cf] n 这里的n是数字 -d :后面跟分隔字符,分隔字符要用双引号括起来 -c :后面接的是第几个字符 -f :后面接的是第几个区块 -d 后面跟分隔字符,这里使用冒号作为分割字符,-f 1 就是截取第一段,-f和1之间的空格可有可无. -c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3  sort :用做排序 语法:sort [-t 分隔符] [-kn1,n2] [-nru] 

8.10 shell特殊符_cut命令;8.11 sort wc uniq命令;8.12 tee

8.10 shell特殊符_cut命令 1. 特殊符号: * 通配符 ? 任意一个字符 # 注释字符(文件脚本里行首加#,表示此行不生效) \ 脱义字符 | 管道符 cut命令: -d(分隔符) -f(指定段号) -c(指定第几个字符) cut (分割) -d (分隔符) -f (指定段号) 1. 显示前两行,以:(冒号)分割,1,2,3,4段: cat /etc/passwd  内容输出 |head -2  指定前两行内容 |cut -d ":"  指定以冒号为分割符号 -f 1,2

Shell脚本三剑客(awk、sort、uniq)内含多个小Demo

awk工具 在Linux/UNIX系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以再无交互的情况下实现相当复杂的文本操作,被广泛应用于Shell脚本,完成各种自动化配置任务. 1.awk常见用法:通常情况下 awk 所使用的命令格式如下所示,其中,单引号加上大括号"{}"用于设置对数据进行的处理动作.awk 可以直接处理目标文件,也可以通过"-f"读取脚本对目标文件进行处理. D

文本过滤之——grep,sort,wc,uniq,tr, 精准过滤IP地址,A类地址,B类地址.... 并排序

文本过滤之IP地址精准过滤 在写之前自己整理了一点自己平时老是搞混的东西,最基础的就不写了,前面的东西不想看得一眼代过,就当借着做IP过滤顺便整理下常用的,看看后面如何精准锁定IP地址吧. 一.正则表达式(PATRERN) 括号() 方括号[] 尖括号<> 大括号{} 的使用 \[\]  匹配指定范围内的任意单个字符 [^] 用于匹配指定对象之外的任意单个字符 ^[] 用于匹配指定对象并且在行首的任意单个字符 \(\) 用作后向引用,也可以用于限定或(\|)的作用域 \1 引用第一个左括号及其

8.10-8.13 shell特殊符号

8.10 shell特殊符号cut命令 特殊符号(上): 1.* 代表零个或多个任意字符. 2.? 只代表一个任意的字符(不管是数字还是字母,只要是一个都能匹配出来.) 3.# 这个符号在linux中表示注释说明的意思,即 # 后面的内容linux忽略掉. 4.\ 脱意字符,将后面的特殊符号(例如"*" )还原为普通字符. 5.| 管道符,它的作用在于将符号前面命令的结果丢给符号后面的命令.这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, l

8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下

8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 # 8.10 shell 特殊符_cut命令 --- - * 任意个任意字符 - ?任意一个字符 -  井号#注释字符  写命令的时候前面加一个#,那么这条命令就不生效,包括shell脚本里面也是,前面加个#表示这一行不生效,可以加一些注释说明的文字 ``` <[email protected] ~># #ls a.txt <[email

Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail 等都是可以接受 standard input 的管线命令啦.至于例如 ls, cp, mv 等就不是管线命令了!因为 ls, cp, mv 并不会接受来自 stdin 的数据. 也就是说,管线命令主要有两个比较需要注意的地方: 管线命令仅会处理 standard output,对于 standar