我有一个数据文件,看起来像下面的例子。我添加了'%'来代替\t
,这是制表符控制字符。为什么这个简单的正则表达式与我认为的不符?
1234:56% Alice Worthington
alicew% Jan 1, 2010 10:20:30 AM% Closed% Development
Digg:
Reddit:
Update%% file-one.txt% 1.1% c:/foo/bar/quux
Add%% file-two.txt% 2.5.2% c:/foo/bar/quux
Remove%% file-three.txt% 3.4% c:/bar/quux
Update%% file-four.txt% 4.6.5.3% c:/zzz
... many more records of the above form
我感兴趣的记录与“更新”开始,“添加”,“删除”等线路。我不知道这些线路是在什么时候开始的,或者它们之前有多少线路。我知道他们总是以一串字母开头,后面跟着两个标签。所以我写了这个正则表达式:
generate-report-for 1234:56 | egrep "^[[:alpha:]]+\t\t.+"
但是这匹配零线。我哪里做错了?
编辑:我得到相同的结果我是否使用'...'
或"..."
为egrep
表达,所以我不知道这是一个壳的事情。
通过'cat -T'运行输出也是显示选项卡而不必手动替换它们的好方法,并建议此解决方案 – dsolimano 2010-04-06 18:10:40