cut最后几位 shell_shell中的特殊符号和cut,sort,wc,uniq,tee,tr,split命令

一、shell中的特殊符号

你在学习linux的过程中,也许你已经接触过某个特殊符号,例如”*”,它是一个通配符号,代表零个或多个字符或数字。

常用到的特殊字符:

1、* 代表零个或多个任意字符。

2、? 只代表一个任意的字符,不管是数字还是字母,只要是一个都能匹配出来。

3、#这个符号在linux中表示注释说明的意思,即#后面的内容linux忽略掉。

4、\ 脱意字符,将后面的特殊符号(例如”*” )还原为普通字符。

5、| 管道符,前面多次出现过,它的作用在于将符号前面命令的结果丢给符号后面的命令。这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk为正则表达式必须掌握的工具。

wc -l命令用来计算一个文档有多少行。

cut命令

用来截取某一个字段。

语法:

cut -d '分隔字符' [-cf] //n这里的n是数字

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

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

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

sort命令

sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。

语法:

sort [-t 分隔符] [-kn1,n2] [-nru] //这里的n1 < n2

-t 分隔符 :作用跟cut的-d一个意思

-n :使用纯数字排序

-r :反向排序

-u :去重复

-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

实例:

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

2、-t 后面跟分隔符,-k后面跟数字,表示对第几个区域的字符串排序,-n 则表示使用纯数字排序(看第3列的排序)

3、-k3,5 表示从第3到第5区域间的字符串排序,-r表示反向排序

命令 : wc

用于统计文档的行数、字符数、词数,常用的选项为:

-l :统计行数

-m :统计字符数

-w :统计词数

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

uniq命令

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

使用uniq 的前提是需要先给文件排序,否则不管用。

[root@localhost ~]# uniq testb.txt

111

222

111

333

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

111

222

333

[root@localhost ~]# 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

#mkdir split_dir

#cd !$

cd split_dir

#cp /etc/passwd ./

#split –b 500 passwd

#ls

passwd xaa xab xac xad xae

如果split不指定目标文件名,则会以xaa、xab……这样的文件名来存取切割后的文件。指定目标文件名,示例如下:

# rm –f xa*

# split –b 500 passwd 123

# ls

# 123aa 123ab 123ac 123ad 123ae passwd

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

# split -l

# rm -f 123a*

# split -l 10 passwd

# wc -l *

45 passwd

10 xaa

10 xab

10 xac

10 xad

5 xae

90 总用量

二、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。

#cd ~

#pwd

/root

#su ccj

#cd ~

#pwd

/home/ccj

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总有一条命令会执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值