【发布时间】:2016-09-28 18:47:56
【问题描述】:
我有一个包含很多行的文件:
ABRD0455252003666
JLKS8568875002886
KLJD2557852003625
.
.
.
AION9656532007525
BJRE8242248007866
我想提取以(ABRD 或 AION)开头的行,并在第 12 到 14 列中提取数字(003 或 007)。
输出应该是
KLJD2557852003625
BJRE8242248007866
我已经尝试过了,它可以工作,但是它的命令太长了,我想针对性能问题对其进行优化:
egrep -a --text '^.{12}(?:003|007)' file.txt > result.txt |touch results.txt && chmod 777 results.txt |egrep -v -a --text "ABRD|AION" result.txt > result2.text
【问题讨论】:
-
^(ABRD|AION)[\n\d]{7}00[37] -
请我在帖子中犯了一个错误。我现在更正了它并添加了更多细节
标签: linux parsing awk grep filefilter