【发布时间】:2021-02-15 03:13:14
【问题描述】:
我有一个包含分号分隔记录的 Unix 文件,如下所示,第二部分/列是一个带有逗号分隔值的字符串,如下所示:
789651234512;TEST-10=5,TEST-136=6,TEST-3=1,TEST-4=2,TEST-5=3,TEST-9=4,TEST-9013=100
132567123784;TEST-3=1,TEST-136=5,TEST-15=4,TEST-4=2,TEST-5=3
132564013784;TEST-3=1,TEST-15=4,TEST-4=2,TEST-5=8
132496583212;TEST-13=4,TEST-136=7,TEST-23=1,TEST-6=2,TEST-5=3,TEST-4=5,TEST-6=11
我想找到所有 TEST-136=X,如果存在,其中 X 可以是从 1 到最多 3 位的任何整数,并像上面的例子一样返回它们:
789651234512;TEST-136=6
132567123784;TEST-136=5
132496583212;TEST-136=7
我正在使用下面的 awk,但它返回第二部分/列的整个字符串:
awk -F'[;]' '/TEST-136/{ print $1";"$2 }' file.txt
但是,如上所述,我只需要获取第 1 部分/列以及第 2 部分/列的 TEST-136=X 部分。
【问题讨论】:
-
请edit你的问题展示你到目前为止所做的尝试。另外,I see 你还没有接受你之前问题的任何答案,如果你得到了问题的答案,请参阅 stackoverflow.com/help/someone-answers ,如果没有,请参阅 stackoverflow.com/help/how-to-ask。