Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 编程 > Shell > 正文

Shell语言五 文本处理命令之wc、tr、cut、join、sort和uniq

时间:2014-05-31 00:23 来源:未知 作者:www.51ou.com 阅读:

前文中为介绍过文本查看的命令,包括:cat、tac、more、less、head、tail等,相对文本查看的命令,是文本处理命令。

文本处理命令可以是查看某文本有多少行;可以是截取部分字符串;可以是将文本中的大小写互换等。下面来具体介绍一些比较常用的文本处理命令。

wc:word count——单词统计命令,能够统计文本的单词数、字符数、行数等

# wc [option] FILE

比如统计 /etc/fstab 文件的行数、单词数和字节数:

# wc /etc/fstab

如果只显示行数,可以使用 -l 选项,此选项用得最多

# wc -l /etc/fstab

如果只显示单词数,可以使用 -w选项

# wc -w /etc/fstab

如果只显示字节数,可以使用 -c 选项

# wc -c /etc/fstab-

 

wKioL1NpTCXAAKuYAADKPWig9DA356.jpg

 

tr:translate——将某个文件中,或某管道传输来的字符集转换为另一种字符

# tr ‘原来的字符集’ ‘转换为的字符集’

注意要两个字符集的个数必须一致,否则可能出现异常情况。

如:

# tr ‘123’‘abc’//表示将所有的123都转换为abc,转换前后的字符个数都是3个

# echo “hello world” | tr ‘a-z’‘A-Z’ // 接收管道中传来的数据,将小写字母改为大写

该命令若使用 -d 选项,表示把出现在文件中的,属于字符集合的字符删除:

如:

# echo “hello world” | tr -d ‘abcde’//将“hello world”通过管道传输,若含有字符集

      //“abcde”中的字符,则将其删除

该命令不能操作文件,因为不接收参数,若要操作文件,需要使用“<”进行输入重定向:

# tr ‘a-z’‘A-Z’ /etc/fstab           // 此处会报错

# tr ‘a-z’‘A-Z’ < /etc/fstab

# cat /etc/fstab        

# cat < /etc/fstab      // cat命令可以接收参数,但也可以用使用“<”进行输入重定向

 

wKiom1NpTGqjD7T3AAVDGwamF38652.jpg

 

cut: 文本切割命令,最常用的功能是能够以指定的符号作为行中内容的分隔符,将每一行切片,而只取出某些片。

# cut [option] FILE

它有以下选项可以使用:

-d 指定分隔符,默认的分隔符为 -d’’——空白字符,若使用其他字符,可以不加引号,如 -d: 表示以冒号为分隔符。

-f 指定需要显示的切片,如 -f1,5表示选第一片和第五片, -f1-5表示选第一片到第五片。-f选项与参数间没有空格!

# cut -d: -f1 /etc/passwd    //取出用户名

# cut -d: -f1,3,7 /etc/passwd   //取出用户名、ID和shell

wKioL1NpTFiiCVLbAAJCYi6hlSI967.jpg

cut命令这种只取出某些字段的操作(取列),在数据库中称作投影

join:连接两个文件中的行,与cut命令相反,使用不多

# join [option] FILE1 FILE2

 

# join test.txt test1.txt   // 连接文件test.txt和test1.txt

wKiom1NpTJPS767mAAC38QhNqrg834.jpg

 

sort:对文本内容进行排序。该命令不会操作源文件,仅仅只是将排序后的结果显示出来

# cat /etc/fstab

# sort /etc/fstab

wKioL1Ns5YzT6rI_AAIctk5w8po328.jpg

sort命令可以使用的选项有:

-f:排序时忽略字符大小写

-v:使用降序排序

-u:只保留一个,移除重复行

wKiom1Ns5diz7qYkAAE_xgYKap8659.jpg

-R:实现随机排序

-n:以数值大小来排序

wKioL1Ns5cSz0dfXAAFUmHFaK1k942.jpg

 

sort的 -t 和 -k选项和cut的-d于-f选项很类似,-t选项用来指定分隔符,-k选项用来指定要排序的段数。 例如:要取出默认shell为bash,且其用户ID号最小的用户的用户名,可输入以下命令

# grep “/bin/bash$” /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1

wKioL1Ns5e3wleNuAAT1h0V7H6I107.jpg

 

uniq:和sort命令很类似,常和sort一起使用,它可以使用的选项有:

-c: 统计每行重复的次数

-u:只显示没有重复的行

-d:只显示出现了一次以上的行

wKiom1Ns5k-CQemTAAJ9sGGE-n0727.jpg

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Shell语言五 文本处理命令之wc、tr、cut、join、sort和uniq》技术文章,《Shell语言五 文本处理命令之wc、tr、cut、join、sort和uniq》详细使用和说明,有时《Shell语言五 文本处理命令之wc、tr、cut、join、sort和uniq》可能不完善、敬请谅解!如果《Shell语言五 文本处理命令之wc、tr、cut、join、sort和uniq》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片