检索相关

大彬大约 1 分钟

检索相关

grep

#反向匹配, 查找不包含xxx的内容
grep -v xxx

#排除所有空行
grep -v '^/pre>

#返回结果 2,则说明第二行是空行
grep -n “^$” 111.txt    

#查询以abc开头的行
grep -n “^abc” 111.txt 

#同时列出该词语出现在文章的第几行
grep 'xxx' -n xxx.log

#计算一下该字串出现的次数
grep 'xxx' -c xxx.log

#比对的时候,不计较大小写的不同
grep 'xxx' -i xxx.log

awk

#以':' 为分隔符,如果第五域有user则输出该行
awk -F ':' '{if ($5 ~ /user/) print $0}' /etc/passwd 

#统计单个文件中某个字符(串)(中文无效)出现的次数
awk -v RS='character' 'END {print --NR}' xxx.txt

find检索命令

#在目录下找后缀是.mysql的文件
find /home/eagleye -name '*.mysql' -print

#会从 /usr 目录开始往下找,找最近3天之内存取过的文件。
find /usr -atime 3 –print

#会从 /usr 目录开始往下找,找最近5天之内修改过的文件。
find /usr -ctime 5 –print

#会从 /doc 目录开始往下找,找jacky 的、文件名开头是 j的文件。  
find /doc -user jacky -name 'j*' –print

#会从 /doc 目录开始往下找,找寻文件名是 ja 开头或者 ma开头的文件。
find /doc \( -name 'ja*' -o- -name 'ma*' \) –print

#会从 /doc 目录开始往下找,找到凡是文件名结尾为 bak的文件,把它删除掉。-exec 选项是执行的意思,rm 是删除命令,{ } 表示文件名,“\;”是规定的命令结尾。 
find /doc -name '*bak' -exec rm {} \;
Loading...