cut、sort、tr、wc、head、tail

cut 命令——简单的awk命令

参数 -d 指定分割符  -f 选取字段,每个字段用逗号分割

例: 

[root@localhost /]# cat /etc/passwd | cut -d ':' -f 1,6
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm

-----------------------------------------------------------

sort命令:根据字段排序

-f 忽略大小写

-r 逆序排列

-n 以数字大小排序(默认以字符排序)

-t 设置分割符(默认以tab分割)

-u uniq,相同数据仅出现一行

-k 以那个区间来排序

例子:读取用户信息文档并按照第三列(用户ID顺序排列)

[root@bogon 桌面]# cat /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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

--------------------------------------------------------------------------------------------

tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换。
语法:tr [–c/d/s/t] [SET1] [SET2]
SET1: 字符集1
SET2:字符集2
-c:complement,用SET2替换SET1中没有包含的字符
-d:delete,删除SET1中所有的字符,不转换
-s: squeeze-repeats,压缩SET1中重复的字符
-t: truncate-set1,将SET1用SET2转换,一般缺省为-t

例子:删除空白行
#删除空白行就是删除换行符\n
#注意:这些空白行上只有回车符,没有空格符
$ cat test.txt
I love linux!
                                                                                                                          
                                                                                                                          
Hello World!
                                                                                                                          
Shell is worthy to been studied

#这里用换行符的转义字符\n
#注意:此处用-s删除了多余的换行符,如果用-d,则会删除所有的换行符        

$ cat test.txt | tr -s "[\012]"
I love linux!
Hello World!
Shell is worthy to been studied      


例子:大小写切换

$ echo "Hello World I Love You" |tr [:lower:][:upper:]
HELLO WORLD I LOVE YOU   


例子:把文档中所有的cat替换成dog

tr "cat" "dog" < animanl.data  # 默认为 -t

使用tr字符串替换要注意一个问题,字符串的长度必须一致。假如 SET1长度小于SET2,SET2长度超出的字符会被丢弃,如果SET1长度大于SET2,则被替换的字符串只会部分被替换。 需要任意长度的字符串替换应使用sed。                                                                                       
-----------------------------------------------------------

wc 

 
wc 可以统计文件或I/O 流中的单词数量. 
wc -w 统计单词数量. 
wc -l 统计行数量. 
wc -c 统计字节数量. 
wc -m 统计字符数量. 
wc -L 给出文件中最长行的长度. 

[root@localhost bin]# wc  vm-support 
 323 1092 7702 vm-support     #323行,1092个单词,7792个字符
[root@localhost bin]# wc -l vm-support 
323 vm-support  
[root@localhost bin]# wc -w vm-support 
1092 vm-support


---------------------------------------------------------------------

head、tail只显示头、尾几行

[root@localhost etc]# head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost etc]# tail -n 2 /etc/passwd
soso:x:502:50::/dev/null:/bin/false
ci:x:503:503::/home/ci:/bin/bash



你可能感兴趣的:(shell)