# grep 选项 文件名
-i: 不区分大小写 -v: 查找不包含指定内容的行,反向选择 -w: 按单词搜索 -o: 打印匹配关键字 -c: 统计匹配到的行数 -n: 显示行号 -r: 逐层遍历目录查找 -A: 显示匹配行及后面多少行 -B: 显示匹配行及前面多少行 -C: 显示匹配行前后多少行 -l:只列出匹配的文件名 -L:列出不匹配的文件名 -e: 使用正则匹配 -E:使用扩展正则匹配eg:
# grep -i root passwd 忽略大小写匹配包含root的行 # grep -w ftp passwd 精确匹配ftp单词 # grep -w hello passwd 精确匹配hello单词;自己添加包含hello的行到文件 # grep -wo ftp passwd 打印匹配到的关键字ftp # grep -n root passwd 打印匹配到root关键字的行好 # grep -ni root passwd 忽略大小写匹配统计包含关键字root的行 # grep -nic root passwd 忽略大小写匹配统计包含关键字root的行数 # grep -i ^root passwd 忽略大小写匹配以root开头的行 # grep bash$ passwd 匹配以bash结尾的行# cut 选项 文件名
-c: 以字符为单位进行分割,截取 -d: 自定义分隔符,默认为制表符\t -f: 与-d一起使用,指定截取哪个区域eg:
# cut -d: -f1 1.txt 以:冒号分割,截取第1列内容 # cut -d: -f1,6,7 1.txt 以:冒号分割,截取第1,6,7列内容 # cut -c4 1.txt 截取文件中每行第4个字符 # cut -c1-4 1.txt 截取文件中每行的1-4个字符 # cut -c4-10 1.txt 截取文件中每行的4-10个字符 # cut -c5- 1.txt 从第5个字符开始截取后面所有字符sort 选项 文件名
-u :去除重复行 -r :降序排列,默认是升序 -o : 将排序结果输出到文件中,类似重定向符号> -n :以数字排序,默认是按字符排序 -t :分隔符 -k :第N列 -b :忽略前导空格 -R :随机排序,每次运行的结果均不同eg:
# sort -n -t: -k3 1.txt 按照用户的uid进行升序排列 # sort -nr -t: -k3 1.txt 按照用户的uid进行降序排列 # sort -n 2.txt 按照数字排序 # sort -nu 2.txt 按照数字排序并且去重 # sort -nr 2.txt # sort -nru 2.txt # sort -nru 2.txt # sort -n 2.txt -o 3.txt 按照数字排序并将结果重定向到文件 # tee 选项 文件名 -a 双向追加重定向
eg:将系统中所有普通用户的用户名、密码和默认shell保存到一个文件中,要求用户名密码和默认shell之间用tab键 分割。
grep 'bash$' /etc/passwd | grep -v '^root'|cut -d: -f1,2,7|tr ':' '\t'|tee abc.txt