[英]How to extract text between parentheses within a longer string using awk?
我是awk / regex的初学者,所以我为这个笨拙的问题表示歉意。 当合并这些字段时,我似乎对awk最为困难。 我有一个较长的awk脚本,该脚本正在解析多个平面文件表,但是此特定列遇到了一些麻烦。
我的数据如下所示:
EFGH1234
(ABCD#)EFGH1234
(LMNOPQ#)RSTU6789
我正在尝试将括号中的文本分开,因为它是自己的列,如下所示:
EFGH1234
ABCD EFGH1234
LMNOPQ RSTU6789
我已经尝试搜索,到目前为止,发现的表达式比我在这里尝试的更为复杂。 任何帮助将不胜感激。
这是您所需要的吗?我猜这里的意思是指去除寄生物。
perl -pe 's/[\(|\)|\#]/ /g' your_file
或awk:
awk 'gsub("[(|#)]"," "){print}' your_file
ABCD EFGH1234
LMNOPQ RSTU6789
LMNOPQ RSTU6789
我假设您正在尝试创建额外的“列”,以便您可以使用它们。 使用split()
函数将字段拆分为数组。 而且,如果您保留拆分创建的元素/键的数量的计数,则可以将此计数用作测试。 例如:
awk '{ n = split($1, a, /[()#]/); print (n==1 ? $0 : a[2] FS a[4]) }' file
结果:
EFGH1234
ABCD EFGH1234
LMNOPQ RSTU6789
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.