文本处理常用命令--sort,uniq,cut,wc

文本处理命令--sort,cut,wc及其他


文本处理命令还有其他常用的,比如:sort,cut,wc

1.cut命令的用法

cut命令:
cut - remove sections from each line of files

cut OPTION... [FILE]...
-c:字符范围,用于排列整齐的信息
-d CHAR:以指定的字符为输入分隔符;默认为空白字符;
-f FILEDS:挑选出的字段;
#:指定的单个字段;
#,#:离散的多个字段;例如1,3,7;
#-#:连续的多个字段,例如4-7;
--output-delimiter= :输出分隔符;

cat /etc/passwd | cut -d ":" -f 1,3,7
以“:”为分隔符,只显示每行1,3,7段的信息
cat /etc/passwd | cut -c 12-
只显示12个字符以后的内容

2.sort命令用法

-r, --reverse:逆序排序;
-u, --unique:相同的行只保留一次;连续且完全一样方为相同;
-t CHAR:指定分隔符;
-k #:用于做排序的字段;
-n, --numeric-sort:基于数值大小进行比较;
-f, --ignore-case:比较时忽略字符大小写;

cat /etc/passwd | sort
以第一行的字母进行排序  
cat /etc/passwd | sort -n -t ":" -k 3
以第三行的数字为顺序进行排列

3.uniq命令用法

如果排序完了,但对于重复的数据仅显示出一个显示,就可以使用uniq
-i:忽略字符大小写
-c:进行计数

last | cut -d " " -f1 | sort | uniq -c

4.wc命令用法

-i:仅显示行数
-w:仅列出多少字
-m:多少字符

cat /etc/passwd | wc
last | grep '[a-zA-Z]' | grep -v 'wtmp' | wc -l
last | grep '[a-zA-Z]' | grep -v 'wtmp'|cut -d " " -f1|sort|uniq -c
#上面的如果使用sed命令去掉空行和最后一行可能会更好
原文地址:https://www.cnblogs.com/zhangpf/p/5742790.html