您的位置:首页 > 运维架构 > Linux

Linux高级文本处理命令

2017-09-30 09:58 453 查看

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开头的

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  awk cut sed wc sort