cut、sort、uniq、wc、tee、split、tr命令详解

cut

cut命令用来切割文本。
d选项指定切割的字符。
f选项指定切割后返回的部分
下面这个例子表示使用‘:’切割/etc/passwd,返回第一段:

[root@localhost tmp]# cat /etc/passwd|cut -d : -f 1
root
bin
daemon
...

sort

单用就是按ascii码排序。

sort /tmp/passwdbak
>
[
234
234a
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:995:991::/var/lib/chrony:/sbin/nologin

默认特殊字符最前面,紧跟数字,最后是字母开头的行。
-n :按数字,字母都当做0

[root@localhost tmp]# sort -n !$
sort -n /tmp/passwdbak
>
[
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:995:991::/var/lib/chrony:/sbin/
rww:x:1000:1000::/home/rww:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
234
234a

上例中,我们看到,使用-n选项后,特殊字符开头的行出现在最上头,字母开头的行按照ascii码顺序排列,数字出现在最后。
-r 反序

chrony:x:995:991::/var/lib/chrony:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
234a
234
[
>

这个结果和sort的结果刚好相反。

wc

统计命令。
wc -l统计行数
wc -m 统计字数
wc -w :统计次数
wc -m显示的字数通常和我们看到的不一样,是因为它把隐藏的字符也算进去了:

[root@localhost tmp]# wc -m abc
4 abc
[root@localhost tmp]# cat -A abc
1$
2$

cat -A可以查看隐藏的字符。

uniq

去重,要先sort再uniq,否则只能去重挨着的行。
-c选项:统计相同行出现次数

Sort 2.txt|uniq -c

-c 显示行数

tee

将标准输出重定向到文件,并且输出到控制台。
-a选项:追加

sort 2.txt|tee a.txt

tr

tr命令从标准输入读取数据,进行替换或者删除。

替换
例1.转换字符

echo 38sb|tr 3 s 
s8sb

例2.转换大小写

echo 38sb|tr [a-z] [A-Z ] 
38SB

split

b:按大小,不写单位就是按字节
例子:按10k来分。

split -b 10k a.txt
[root@localhost tmp]# du -sh *
484K    a.txt
12K     xaa
12K     xab
12K     xac
12K     xad
12K     xae
12K     xaf

1个块是4k,3个块是12k,这是没有分成10k的原因。
l:按行数

[root@localhost tmp]# split -l 500 a.txt
[root@localhost tmp]# ls
a.txt  xab  xad  xaf  xah  xaj  xal  xan  xap  xar  xat  xav  xax  xaz  xbb
xaa    xac  xae  xag  xai  xak  xam  xao  xaq  xas  xau  xaw  xay  xba  xbc

我们看一下其中的第一个文件:

图片[1]-cut、sort、uniq、wc、tee、split、tr命令详解-不念博客
文件

这一讲涉及的命令比较多,大家可以下去多练一练。有些命令不念讲的比较简单,是为了大家更快的入门,有兴趣的同学可以在网上查阅更深入的用法。

© 版权声明
THE END