[ftt@localhost 文档]$ cat test3
ABCD
EFG
1 ABCD
2 EFG
3
[ftt@localhost 文档]$ wc test3 //wc依次给出文件的行数/单词数和字符数。
6 7 41 test3
wc -m //显示字符数,不用-c是因为-c用来计算文当中的字节数
wc -w //显示单词数
wc -l //显示行数
[ftt@localhost 文档]$ nl test3 //nl对文件内容进行标行
1 ABCD
2 EFG
3 1 ABCD
4 2 EFG
5 3
[ftt@localhost 文档]$ nl test3 > test3.txt
[ftt@localhost 文档]$ cat test3.txt
1 ABCD
2 EFG
3 1 ABCD
4 2 EFG
5 3
除了使用制表符分割文件,常使用逗号/分号/冒号/句点作为分割符号
[ftt@localhost 文档]$ cut -f 1,3 test3.txt //选择分割文件中的整列数据,并显示;-f(fields),指明检索的列,1-3,表示1,2,3列;1,4-8表示6个列;
1
2
3 ABCD
4 EFG
5
cut -f 1,3 --output--delimiter=',' test3.txt
[ftt@localhost 文档]$ sort test3 //sort对文件内容排序,并显示在stdout;test3本身并没有变化
1 ABCD
2 EFG
3
ABCD
EFG
[ftt@localhost 文档]$ sort test3>test4 //把排序后的内容输入到test4
[ftt@localhost 文档]$ sed 1d test4 //删除test4的第一行内容,即空行,在stdout显示,源文件不变
1 ABCD
2 EFG
3
ABCD
EFG
[ftt@localhost 文档]$ sort -k 3 -r age //-k 3以第三个关键字为排序基准,-r反转,此处sort把第三行作为字符串进行排序
sun 18 2006
zhou 19 1997
zhao 13 1994
qian 15 1992
li 69 1988
sort -n //按数字排序文件内容
cd /var
du -d 1 | sort
du -d 1 | sort -n
du -d 1 -h | sort -n
du -d 1 -h | sort -h
[ftt@localhost var]$ history //history显示服务器上运行了哪些命令
1 suroot
2 su root
3 lsee test3.txt
4 pwd
5 ls
[ftt@localhost var]$ history | awk '{print $2}' //awk取出第二列内容,即命令
[ftt@localhost var]$ history | awk '{print $2}' | uniq //在原来的基础上去重复
[ftt@localhost var]$ history | awk '{print $2}' | sort |uniq //经过排序
[ftt@localhost var]$ history | awk '{print $2}' | sort |uniq -c | sort -n //-c(count)计算出现的次数,并根据次数排序
[:alnum:] 字母数字(A-Z/a-z/0-9)
[:alpha:]字母(A-Z/a-z)
[:blank:]空白(空格和制表符)
[:digit:] 数字(0-9)
[:lower:]小写字母(a-z)
[:punct:]标点和符号
[:space:]空格(空格/制表符/换行/垂直空白)
[:upper:]大写字母(A-Z)
泰勒编程定律:
如果可以awk中完成工作,则绝不要在C中编写代码;
如果sed可以处理工作,则绝不要在awk中执行操作;
如果tr可以处理工作,则绝不要使用sed;
如果cat可以处理工作,则绝不要调用tr;
尽量避免使用cat