示例输入是:
3 TT 00670101J12SEP1629OCT16 6 OTP08100810+0300 DXB14351435+04001 73WCDIOYBMUKRHGLQNTVSEX XX M 00468673
"7518,32S,CDIYBMULKRQHTVNSE," | sed "s/$,\{9\}\(.\{3\}\).*/\1,&/"
所需的样本输出是
7518,32S,CDIYBMULKRQHTVNSE,C
如果170以后的字符不存在..
7518是行号。它已经开发了但是我正在制定一个额外的要求,即如果存在从170开始的字符,则在逗号之后添加到行的末尾,从前一个标记中取出第一个字符。
答案 0 :(得分:0)
这样的事可能有用:
$ sed 's/,\(...\)[^,]*/&,\1/2' input.txt
7518,32S,CDIYBMULKRQHTVNSE,CDI,
它将替换,
的第二个匹配,后跟三个字符:
7518,32S,CDIYBMULKRQHTVNSE,
# ^^^^^^^^^^^^^^^^^^
# |||| ^ End of match
# |^^^ Captured in \1
# ^ Start of match