find命令、grep命令、sed 命令 、awk命令、uniq命令
find命令原理:从指定的起始目录开始,递归地搜索其各个子目录来查找满足条件的文件。
格式:find [查找目录] [参数] [匹配模型]
多参数格式:find [查找目录] [参数] [匹配模型] [参数] [匹配模型]
例如:
1、find . -name "*.sh"
查找在当前目录(及子目录)下找以sh结尾的文件。
2、find . -perm 755
查找在当前目录(及子目录)下找属性为755的文件。
3、find -user root
查找在当前目录(及子目录)下找属主为root的文件。
4、find /var -mtime -5
查找在/var下找更改时间在5天以内的文件。
5、find /var -mtime +3
查找在/var下找更改时间在3天以前的文件。
6、find /etc -type l
查找在/etc下查找文件类型为|的链接文件。
7、find . -size +1000000c
查找在当前目录(及子目录)下查找文件大小大于1M的文件,1M是1000000个字节。
8、find . -perm 700 |xargs chmod 777
查找出当前目录(及子目录)下所有权限为700的文件,并把其权限重设为777。
9、find . -type f |xargs ls -l
查找出文件并查看其详细信息。
grep命令查找 所在行内容
格式:grep [参数] [搜索模型] [文件名]
1、grep "hello" *
在的有文件中查找 hello 文件。
选项参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 所在 行的次数 ,而不是字符串出现的次数。
-i :忽略大小写的不同
-n :顺便输出行号
-v :反向选择,显示出没有 '搜寻字符串' 的那行内容!
--color=auto :可以将找到的关键词部分加上颜色的显示喔
处理参数:
-A 除了显示匹配的一行之外,并且显示该行之后的num行
-B 除了显示匹配的一行之外,并且显示该行之前的num行
-C 除了显示匹配的一行之外,并且显示该行前后的num行
2、grep -c "file" a
在a文件中匹配到 file 所在行的次数。
3、grep -n "file" a
在a文件中有多少行匹配到file,同时显示行和行号。
4、grep -i "file" a
在a文件中查找file,并不区分大小写。
5、grep -v "file" a
在a文件中过滤掉file所在的行。
grep -E 选项可以用来扩展选项为正则表达式。
6、grep -E "2016:22:5[0-9]" a
在a文件中查找时间在2016:22:50->2016:22:59的所在行。
7、grep -E "4{2}" a
查找包含两个4的行。
8、grep -E "4{2,}" a
查找大于两个4的行。
sed 命令 (替换或打印)
选项参数:
-n 取消sed的默认输出,不修改文件内容。
-i 改变文件内容。
结果处理参数:
p print打印。
d delete删除。
a 新增,指定行后方加入新行
s 替换指定字符串,格式 :sed -i 's/查找字符串(可以用正则表达式)/替换字符串/g' test.txt ;g代表global ,也可以指定行数;“/”是分隔符,可以用 # @ 等替换。
sed命令中,"$" 表示文件的最后一行
1、sed -n '1,4'p file
只打印从第一行到第四行得记录。
2、sed -n '/los/‘p file
打印匹配los的行
3、sed -n '4,/los/'p file
打印从第四行到匹配第一个los的之间的所有行。
4、sed -n '1,2'd file
把第一行和第二行全部删除(不改变原文件内容)。
awk命令数据处理并分析(取列)
awk命令原理:简单来说awk就是把文件逐行的读入,按输入分隔符进行切片,切成多个组成部分,把每片保存在内建的变量中,$1,$2,$3......($1第一列,$2第二列...$NF最后一列);其中,$0表示整行。
模型:
awk [参数] 'awk语句' 文件
例如一:
awk -F "分隔符" ‘{print $1}’ 文件
awk '{if(NR<31 && NR>19) printf $1"\n"}' test.txt
注:NR代表行号,&&(and)并且,\n回车换行
参数说明:
-F 指定分隔符
例如二:
cat file|awk '$0 !~/192.168.10.2/'|grep "php"|wc -l
~匹配192.168.10.2的ip地址的統計,!~為不匹配
awk '{print $1}' /var/log/httpd/access_log|sort|uniq -c
把apache网站的所有访问ip全部统计出来,并打印出统计次数。
uniq命令(重复)
1、uniq -c file
打印紧挨的重复行出现的次数。
2、uniq -d file
只打印重复的行。

浙公网安备 33010602011771号