【发布时间】:2011-03-26 01:24:54
【问题描述】:
我被困在这里。不知道为什么我的 reg ex 不起作用。我有一个带有一系列列的管道分隔文本文件。我需要提取第三列。
文件:
A|B|C|D|E|F|G|H|I
2011-03-03 00:00:00.0|1|60510271|254735|27751|BBB|1|-0.1619023623|-0.009865904
2011-03-03 00:00:00.0|1|60510270|254735|27751|B|3|-0.0064786612|-0.0063739185
2011-03-03 00:00:00.0|1|60510269|254735|27751|B|3|-0.0084998226|-0.009244384
正则表达式:
$> head foo | perl -pi -e 's/^(.*)\|(.*)\|(.*)\|(.*)$/$3/g'
输出
-0.1619023623
-0.0064786612
-0.0084998226
显然输出的列不正确。
想法?
【问题讨论】:
-
查看 Bllly 和 Gareth,了解您的正则表达式失败的原因。另外,括号里除了你喜欢挑出来的(第三个)就不用括号了,然后替换成
$1insread of$3。