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 显示输出空行的行号下载本文