Linux高级文本处理命令

cut、sort、wc、sed、awk


1、cut (提取文本列)

echo $PATH | cut -d ':' -f 5    //取$PATH输出流的第五列,是以:为分隔符的第5列

echo $PATH | cut -d ':' -f 1,3    //取第3,5列

echo $PATH | cut -d ':' -f 1-3    //取第1-3列

echo $PATH | cut -d ':' -f 5 -   //取5列以后

echo $PATH | cut -d ':' -f 1-3,5    //取1-3和5列


2、sort (对行排序)

cat /etc/passwd | sort: 对/etc/passwd进行排序输出,默认按字符串形式升序

cat /etc/passwd | sort -t ':' -k 3 : 以:为分隔符,按第三列排序

cat /etc/passwd | sort -t ':' -k 3n : 以:为分隔符,按第三列排序,排序按数字大小升序排序

cat /etc/passwd | sort -t ':' -k 3nr : 降序

cat /etc/passwd | sort -t ':' -k 3 -u : -u是去重

cat somefile | sort | uniq  : 去重

sort somefile | uniq -c : 去重并统计次数



3、wc

wc -l /etc/passwd : 统计行

wc -w /etc/passwd : 统计单词出现次数

wc -m /etc/passwd : 统计字符数


4、sed (删除)

sed '2d' somefile : 删除第二行,但是不是真的删除

sed -i '2d' somefile : 真的删除

sed '2,$d' somefile : 删除2-最后一行

sed '$d' somefile : 删除最后一行

sed '/test/'d somefile :删除含有test的行

sed 's/from/to/g' somefile : 匹配每一个from,变成to

sed -n 's/^from/to/p' somefile : 匹配以from开头的,打印发生替换的行

sed 's/^from/&to/' testfile : 在from开头的单词后面追加to


5、awk

last -n 5 | awk '{print $1}' : 打印第一列,默认以tab和空格等为分隔符

cat /etc/passwd | awk -F ':' '{print $1}'     //以:为分隔符

cat /etc/passwd | awk -F ':' '{print $1"\t"$3}'   //输出1,3列,中间分隔

cat /etc/passwd | awk -F ':' 'BEGIN {print "name,shell"} {print $1,$7} END {print "blue,bin"}'   //首尾列名

awk -F '/root/' /etc/passwd : 含有root的

awk -F '/^root' /etc/passwd : 以root开头的





 









































  • 15
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值