Linux 常用文本处理命令,常用指令参数

文本处理: cut,sort,uniq,grep

    cut:
        -d: 指定字段分隔符,默认是空格
        -f: 指定要显示的字段
            -f1    显示第一个字段
            -f 1,3 显示第一个和第三个
            -f 1-3 显示第一个到第三个
        --complement: 反向列选择
        -c:仅显示行中指定范围的字符

        例子
           cut -c1-3 /etc/passwd
           cut -d: -f1,3 /etc/passwd

    sort     
        -n:数值排序
        -r:降序     
        -t:字段分隔符
        -k:表示以那个字段进行排序
        -u:排序后相同的行只显示一次
        -o:排序后的结果存入指定的文件
        -f:忽略字符大小写
        -b:忽略每行前面开始出的空格字符

        例子
           sort -t: -k3 /etc/passwd
           sort -t: -k4 -n /etc/passwd
           seq 10 |sort -rn

    uniq:
         -c:显示文件中行重复的次数
         -d:只显示重复的行
grep
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
egrep和fgrep都是grep的扩展,命令只跟grep有很小不同

-c 或 --count : 计算符合样式的列数。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的普通表示法来使用。
-i 或 --ignore-case : 忽略字符大小写的差别
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 

搜索root的行
grep -n 'root' /etc/passwd
搜索没有root和行(-v 方向选择)
grep -v 'root' /etc/passwd
利用[]搜索集合字符 匹配 roat robt roct
grep -n 'r[abc]ot' /etc/passwd
搜索oo前面没有g的(^表示排除)
grep -n '[^g]oo' /etc/passwd
搜索以小写字母开头
grep -n '^[a-z]' /etc/passwd
搜索开头不是英文字母的行
grep -n '^[^a-zA-Z]' /etc/passwd
搜索以点结尾的行
grep -n '\.$' /etc/passwd
搜索空行
grep -n '^$' /etc/passwd
搜索非空行
grep -vn '^$' /etc/passwd
搜索两个以上的oo字符串
grep -n 'ooo*' /etc/passwd
搜索包含两个o的字符串的行
grep -n 'o\{2\}' /etc/passwd
搜索两个以上o的
grep -n 'go\{2,\}g' /etc/passwd
去除空白后或者以#开头
egrep -v '^$|^#' /etc/passwd or grep -Ev '^$|^#' /etc/passwd
统计文件或者文本中包含匹配字符串的行数 -c
grep -c "root" /etc/passwd
搜索多个文件并查找匹配文本
grep -c root /etc/passwd /root/passwd_test
在多级目录中对文本进行递归搜索 -r
grep -r 'root' /etc/
忽略匹配样式中的字符大小写
grep -i 'root' passwd_test
# 制动多个匹配样式
grep -e root -e www passwd_test
#只在目录中所有的.php和.html文件中递归搜索字符"main()"
grep "main()" . -r --include *.{php,html}
#在搜索结果中排除所有README文件
grep "main()" . -r --exclude "README"
#在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist
#grep静默输出
grep -q root passwd_test
echo $?
#显示匹配某个结果之前的3行
grep -B 3 nobody passwd_test
#显示匹配某个结果之后的3行
grep -A 3 nobody passwd_test
#显示匹配某个结果的前三行和后三行
grep -C 3 nobody passwd_test

 

你可能感兴趣的:(运维)