youhaodiyi 发表于 2007-5-15 20:06:34

关于grep的问题

我写了一个grep命令,如下:
grep "[^a-z]Pro" abc.txt
在abc.txt文件中查找Pro字符串,其前面不允许有小写英文字母,但是这样查找会把以Pro字符串开头的行过滤掉,如何能够让他包括以Pro字符串开头的行?

谢谢

KDE 发表于 2007-5-16 12:19:23

你要注意:
匹配是逐行进行的;
匹配默认情况下总是追求最大化,即它总是根据最后一次匹配成功时遇到的情况执行特定的动作,大多数是显示操作;
思路:
1. 删除所有包含 Pro 且 Pro 前方紧跟小写字母的行;
2. 从上一步的结果中筛选所有包含 Pro 的行。
看结果:

# cat abc.txt
aPro
zPro
Pro
Proh
sss Pro
HHHdPro
Prosisses
askjha
sajkk
HHHJProhu
jjyuPro
kkiyProdd
Prohu sdjkPro
ProPro
Pro Pro h0Pro HHJpro hhyKPro


# cat abc.txt | grep -v "Pro"
Pro
Proh
sss Pro
Prosisses
askjha
sajkk
HHHJProhu
Pro Pro h0Pro HHJpro hhyKPro


# cat abc.txt | grep -v "Pro" | grep "Pro"
Pro
Proh
sss Pro
Prosisses
HHHJProhu
Pro Pro h0Pro HHJpro hhyKPro

vincentn 发表于 2007-7-3 14:12:52

grep "^[^a-z]*Pro"
页: [1]
查看完整版本: 关于grep的问题