【发布时间】:2016-11-25 18:59:40
【问题描述】:
我正在尝试获取"([:alnum][:alnum][:alnum]" and ")" 和字符串本身之间的字符串。事实上,这个想法是清理一个被许多不需要的字符污染的文件。
例如,我有很多行,例如:
bÖÓÄÉ@@@@ø16/11/2016 15H03'09" (ACTA/BN940-RYR71ND/A4067-LIPH-NILDU/1513F270-LEBL-9/B738/M-80/S-81/W/EQ Y/EQ) ø ZZZZtA$bÖÓÄÉ
我想要这样的输出:
(ACTA/BN940-RYR71ND/A4067-LIPH-NILDU/1513F270-LEBL-9/B738/M-80/S-81/W/EQ Y/EQ)
我尝试使用这个 gawk 命令,但它根本不起作用:
gawk 'NR > 1 {print $1}' RS='([[:alnum:]]*3' FS=')' $INPUT_FILE
【问题讨论】:
-
为什么不
grep -oP '\(.*\)' inputfile?这将打印(和)之间的任何内容。或grep -oP '\(\K.*(?=\))' inputfile,如果您不想在输出中使用( & )。 -
该文件包含许多寄生虫字符,例如“H@@@@A@”,它们被检测为括号......这就是为什么我需要更复杂的模式。