grep
grep [选项]… 查找条件 目标文件
选项:
-m # 匹配#次后停止
grep -m 1 root /etc/passwd #多个匹配只取第一个
实验二
-v 显示不被pattern匹配到的行,即取反
grep -Ev '^[[:space:]]*#|^$' /etc/fstab
-i 忽略字符大小写 #可有可无
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-E 使用ERE,相当于egrep,使用扩展正则
-F 不支持正则表达式
-f file 根据模式文件,处理两个文件相同内容 把第一个文件作为匹配条件
[root@localhost opt]# grep -f 123.txt 456.txt #匹配两个文件中内容相同的部分
a
b
c
ee
[root@localhost opt]# grep -r a /opt #递归过滤目录中的文件
匹配到二进制文件 /opt/.yonghu.sh.swp
/opt/123.txt:a
/opt/456.txt:a
[root@localhost opt]# ln -s 123.txt b
[root@localhost opt]# grep -R a /opt
匹配到二进制文件 /opt/.yonghu.sh.swp
/opt/123.txt:a
/opt/456.txt:a
/opt/b:a
-r 递归目录,但不处理软链接
R 递归目录,但处理软链接
[root@test1 opt]# cat 123.txt |grep -v '^$' >test.txt //将非空行写入到test.txt文件
[root@test1 opt]# grep "^b" 123.txt //过滤已b开头
[root@test1 opt]#grep '/$' 123.txt //过滤已/结尾
sort、uniq、tr命令:
sort命令
以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
语法格式:
sort 选项 参数
cat file | sort 选项
常用选项:
-f:忽略大小写,默认会大写字母排在前面
-b:忽略每行前面的空格
-n:按照数字进行排序
快捷去重——uniq:
uniq命令用于报告或者忽略文件中连续的重复行,常与sort命令结合使用。
格式:
uniq [选项] 参数
cat 文件| uniq 选项
-c 统计连续重复的行的次数,并且合并重复的行
uniq -u test.txt ---只显示出现一次的行
uniq -d test.txt ---只显示连续重复的行
sort -n test.txt | uniq -c ---对重复的数据行计数,并且去重输出
sort -n test.txt | uniq -u ---只展示不重复的数据行
sort -n test.txt | uniq -d ---只展示重复的数据行
tr命令:
常用于对来自标准输入的字符进行替换、压缩和删除
语法格式:
tr 选项 参数
常用选项:
-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
参数:
字符集1:
指定要转换或删除的原字符集。当执行转换操作时,
必须使用参数”字符集2“指定转换操作时,必须使用参数”字符集2“指定转换的目标字符集。
但执行删除操作时,不需要参数”字符集2“
字符集2:
指定要转换成的目标字符集
echo 192.168.233.22 | tr '.' ' ' ---把"." ,替换成空格
echo ABC | tr "A-Z" "a-z" ---大写替换成小写
echo abc | tr -c 'ab' 'a' ---保留了ab,替换了c,输出aa
echo abc | tr -d 'ab' ---删除ab,打印c
sort -n test.txt | tr -s '\n' ----排序输出,压缩空行为一个
echo $PATH | tr -s ":" "\n" ---把":"替换为换行
快速裁剪命令——cut:
expr substr 截取方法
[root@localhost tr]#i=12345678
[root@localhost tr]#expr substr $i 1 3
123
[root@localhost tr]#expr substr $i 2 5
23456
cut截取方法
对字段进行截取和剪裁
格式:
格式一:cut [选项] 参数
格式二:cat file | cut [选项]
-d 指定分隔符(默认分隔符为Tab)
-f 按字段进行截取。指定第n个字段;自取前三