Linux命令学习笔记(八)---使用过滤器操作文本文件

[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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值