- wc
wc -l /etc/passwd(统计行数)
wc -w /etc/passwd(统计单词个数)
wc -c /etc/passwd(统计字符个数)
wc -lwc /etc/passwd(统计文件中行数、单词个数、字符个数)
- cut命令可以从一个文本文件或者文本流中提取文本列。
cat /etc/passwd |cut -d ':' -f 1,7(行分割符为:,取1和7字段)
cat /etc/passwd|cut -d ':' -f 1-3(取1-3字段)
cat /etc/passwd|cut -d ':' -f 1-(取1到最后一个字段)
- uniq
-i:忽略大小写
-c:统计相同的行数
-u:显示独一无二的行
-d:显示有重复的行
-dc:统计并显示有重复的行
-uc:统计并显示没有重复的行
testfile: hello world friend hello world hello lky sort testfile |uniq -dc(对文件进行排序,然后显示并统计有重复的行) sort testfile |uniq -uc(对文件先排序,然后显示没有重复的行) sort testfile |uniq (对文件先排序,然后去重)
- sort
选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同; -b :忽略最前面的空格符部分; -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法; -n :使用『纯数字』进行排序(默认是以文字型态来排序的); -r :反向排序; -u :就是 uniq ,相同的数据中,仅出现一行代表; -t :分隔符,默认是用 [tab] 键来分隔; -k :以那个区间 (field) 来进行排序的意思
cat /etc/passwd |sort(默认以第一个数据进行排序)
cat /etc/passwd |sort -t ':' -k 3(分割符为:,以第三个字段进行排序)
cat /etc/passwd |sort -t ':' -k 3n(分割符为:,以第三个字段进行排序并按数字进行排序,默认是按照字符串进行排序)
cat /etc/passwd |sort -t ':' -k 3nr(分割符为:,以第三个字段进行排序并按数字进行排序并降序排序,默认是按照字符串进行排序,默认是按照升序进行排序)
对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序。
cat /etc/passwd |sort -t ':' -k 6.2,6.4 -k 1r
对/etc/passwd按照第七个域进行排序,然后去重
cat /etc/passwd |sort -t ':' -k 7 -u
- awk
awk -F ' ' 'pattern+action' filename awk -F ':' '/root/{print $0}' /etc/passwd -------------------------------------------------------------------------------- last -n 5 | awk 'BEGIN{print "name,ip"} {if(NF>=9)print $1","$3} END{print "END";}' -------------------------------------------------------------------------------- 统计某个目录下资源大小 ls -al | awk 'BEGIN{size=0;} {if(NF>=5){size=size+$5;};print "current size is : ",size;} END{print "END"}' -------------------------------------------------------------------------------- 输出/etc/passwd中所有用户 awk -F ':' 'BEGIN{count=0;} /^root/{name[count]=$1;count++;}END{for(i=0;i<count;++i){printf("the %s user is %s\n",i,name[i])}}' /etc/passwd --------------------------------------------------------------------------------