视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
grep命令详解
2025-09-30 22:45:23 责编:小OO
文档
10.246.55.10

255.255.255.128

网关 10.246.55.254

一般在sep和 4之間是兩個空格

這樣也可以:

# awk '/^Sep 4/' messages

如果你不能確定你的空格數,可以這樣

# awk '$2~/4/' messages

awk'$2~/4/'messages

Grep使用正则表达式为精确匹配:

参数:

-v 逆反模示,显示不包含正则的行

-r 递归模式包含子目录

-q 静默模式

-i 忽略大小写,仅对单字符有效.

-w 整词比对,即以标点符号为词分隔符

-n 同时输出行号

-c 只输出符合规则的统行计数

-l 只输出符合规则的文件名称

-o 只输出符合 RE 的字符串

-s 不显示不存在或无匹配文本的错误信息 等同于2>/dev/null

-h 查询多文件时不显示文件名

\\> 精确匹配一行

-E 扩展模式

附加信息:

[ [ : u p p e r : ] ] 等价于 [ A - Z ]

[ [ : a l n u m : ] ] 等价于 [ 0 - 9 a - zA-Z]

[ [ : l o w e r : ] ] 等价于 [ a - z ]

[ [ : s p a c e : ] ] 等价于 空格或t a b键

[ [ : d i g i t : ] ] 等价于 [ 0 - 9 ]

[ [ : a l p h a : ] ] 等价于 [ a - z A - Z ]

grep -n "^$" test.txt 显示输出空行的行号

grep '360565687:150********\\>' qq.txt 精确匹配360565687:150********这一行

grep -n "360565687" qq.txt 显示行号加匹配内容

grep -c "360565687" qq.txt 显示能匹配到的行数

grep 一般在sep和 4之間是兩個空格

這樣也可以:

# awk '/^Sep 4/' messages

如果你不能確定你的空格數,可以這樣

# awk '$2~/4/' messagesqq.txt 匹配360565687后接一个tab键的行

grep "[345]60" qq.txt 匹配包含360 460 560的行

grep "50[Ss]" qq.txt 匹配包含50S或50s的行

grep -o "50[Ss]" qq.txt 只显示匹配的一部分,即只显示50S 50s’

grep "[a-d]60" qq.txt 匹配包含a60 b60 c60 d60 的行

grep '3[3,6]' qq.txt 只能匹配33或36

grep "^[^34]" qq.txt 匹配不以3或4开头的行

grep -v "^[^34]" qq.txt 匹配以3或4开头的行

grep '3.0' qq.txt|grep '1.0' qq.txt 同时匹配3.0和1.0的行,点代表任意字符

grep '3\\{2\\}2' qq.txt 匹配3连续出现两次后接2的行,即332

grep '3\\{2,\\}2' qq.txt 匹配3至少出现2次后接2的行

grep -E '332|360' qq.txt 匹配332或者360的行

grep -c '^$' qq.txt 显示空行总数

grep -

w '360565687' qq.txt 匹配以360565687当一个词,前后标点或空格

grep '\\<360565687\\>' qq.txt 匹配以360565687当一个词,前后标点或空格

grep '360565687\\>' qq.txt 匹配以360565687当一个词,前后标点或空格

grep '6' qq.txt 匹配包含6的行

grep '6*' qq.txt 匹配所有的行

在 bash 下如何去除一个字符串首尾的空格(也就是 trim)呢?其实有一个简单的办法:

$ echo $STR

注 意 $STR 不要带引号。因为 $STR 展开后,会作为 echo 的参数。那么 echo 在处理参数的时候,自然会忽略首尾的空格。不过此种方法有个小问题,那就是 echo 输出的结果,会将字符串中间的连续空格变成一个空格。例如 $STR 为 " any string " 的话,那么输出将是 "any string"。

既然这种方法有这么个小问题,我就想是否可以用其他办法。最后想到的还是用 grep 来做。如下:$ echo "$STR" | grep -o "[^ ]\\+\\( \\+[^ ]\\+\\)*"

用 "[^ ]+( +[^ ]+)*" 去匹配除首尾空格外的部分,然后 -o 仅输出匹配的部分,这样就达到去除首尾空格的效果了。

转自:

http://blogold.chinaunix.net/u/24581/showart_1882388.html

以下相关信息:

常用的 grep 选项有:

-c 只输出匹配行的个数。

-i 不区分大小写(只适用于单字符)。

-h 查询多文件时不显示文件名。

-l 查询多文件时只输出包含匹配字符的文件名。

-n 显示匹配行及行号。

-s 不显示不存在或无匹配文本的错误信息。

-v 显示不包含匹配文本的所有行。

-V 显示软件版本信息

使用grep匹配时最好用双引号引起来,防止被系统误认为参数或者特殊命令,也可以匹配多个单词。

例如:

grep -n "^$" test.txt 显示输出空行的行号下载本文

显示全文
专题