shell之grep

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个字段;自取前三
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值