linux - gawk 字符串提取 ([ :alnum][:alnum][:alnum] and [:alnum])

标签 linux awk gawk

我正在尝试获取 "([:alnum][:alnum][:alnum]"和 ")" 之间的字符串和字符串本身。事实上,这个想法是清理一个被许多不需要的字符污染的文件。

例如,我有很多行是这样的:

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

最佳答案

这看起来像是 GNU grep 的标准用法:

grep -o '([[:alnum:]]\{3\}.*[[:alnum:]])' file

您的正则表达式语法存在一些问题,我已更正。

-o 选项只打印该行的匹配部分。

关于linux - gawk 字符串提取 ([ :alnum][:alnum][:alnum] and [:alnum]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40803154/

相关文章:

c++ - -I 在 g++ 命令中意味着什么?

linux - Swift3 Linux vc Mac DispatchQueue

awk 打印到输出文件的顶部

awk 特定文本并打印上面 2 行

awk - 使用awk替换两个字符串

python - crontab 没有运行作业,昨天还可以

linux - 我可以使用具有退出状态的命令替换,而不是标准输出吗?

awk - 使用 awk 作为字段分隔符的单个空格

regex - 使用 AWK [或 sed、grep 等] 删除特定行

perl - 命令行枢轴