cut命令用于从文件或者标准输入中读取内容,然后按指定规则截取每一行的特定部分,并将结果送到标准输出。常用的参数有-c、-d、-f和-s,对应“characters”、“delimiter”、“fields”和“only-delimited”,分别表示“按指定字符区域截取”、“按指定分隔符截取”、“输出指定字段”和“只输出有分隔符的行”。如果按指定分隔符截取,-d和-f必须配合使用,为了排除不存在分隔符的行,需要配合-s使用。如果按指定字符区域截取,-c只能单独使用。
grep命令用于从文件或者标准输入中搜索指定内容,并将结果送到标准输出。常用的参数有-i、-w、-v、-m、-n、-R(-r)、-l、-B、-A和-C,对应“ignore-case”、“word-regexp”、“invert-match”、“max-count”、“line-number”、“recursive”、“files-with-matches”、“before-context”、“after-context”和“context”,分别表示“忽略大小写”、“完全匹配指定单词”、“输出不匹配行”、“匹配指定次数后停止”、“输出时同时打印行号”、“在指定目录递归搜索所有文件(包括子目录)”、“只打印匹配到指定内容的文件名”、“打印匹配行及其前面的指定数量行”、“打印匹配行及其后面的指定数量行”和“打印匹配行及其前后的指定数量行”。
应用实例:
1、从/etc/passwd文件中获取root用户的主目录
trevor@trevor-PC:~/linux/linux100$ grep root /etc/passwd root:x:0:0:root:/root:/bin/bash trevor@trevor-PC:~/linux/linux100$ grep root /etc/passwd -n | cut -d ':' -f 7 /root trevor@trevor-PC:~/linux/linux100$
2、列出服务器上当前在线的用户,最多3个
taoz@uBMW ~ $ last | grep "still logged in" lilb pts/4 192.168.200.51 Wed Dec 21 21:23 still logged in lilb ssh 192.168.200.51 Wed Dec 21 21:23 still logged in taoz pts/2 192.168.200.51 Wed Dec 21 21:19 still logged in root pts/0 192.168.200.57 Wed Dec 21 19:40 still logged in xuyw pts/3 192.168.200.62 Wed Dec 21 18:51 still logged in taoz@uBMW ~ $ last | grep "still logged in" -m 3 | cut -d ' ' -f 1 lilb lilb taoz taoz@uBMW ~ $
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。