【发布时间】:2018-10-31 21:29:38
【问题描述】:
我正在尝试使用 awk 处理文件。 样本数据:
233;20180514;1;00;456..;m
233;1111;2;5647;6754;..;n
233;1111;2;5647;2342;..;n
233;1111;2;5647;p234;..;n
233;20180211;1;00;780..;m
233;1111;2;5647;3434;..;n
233;1111;2;5647;4545;..;n
233;1111;2;5647;3453;..;n
问题陈述是说我需要复制匹配“1;00;”的记录的第二列跟踪记录直到下一个“1;00;”匹配,然后进一步复制该记录的第二列,直到下一个“1;00;”匹配。匹配模式“1;00;”也可以改变。 可以说“2;20;” .在这种情况下,我需要复制第二列,直到出现“1;00;”或“2;20;”匹配。
我可以使用 while 循环来执行此操作,但我确实需要使用 awk 或 sed 执行此操作,因为文件很大并且 while 可能需要很长时间。
预期输出:
233;20180514;1;00;456..;m
233;20180514;1111;2;5647;6754;..;n+1
233;20180514;1111;2;5647;2342;..;n+1
233;20180514;1111;2;5647;p234;..;n+1
233;20180211;1;00;780..;m
233;20180211;1111;2;5647;3434;..;n+1
233;20180211;1111;2;5647;4545;..;n+1
233;20180211;1111;2;5647;3453;..;n+1
提前致谢。
【问题讨论】:
-
我们怎么知道 1111;2 不是很好的匹配,你说说 2;20。