SED结束与字符串索引不起作用

时间:2016-12-05 14:15:33

标签: linux shell sed scripting

示例输入是:

 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开始的字符,则在逗号之后添加到行的末尾,从前一个标记中取出第一个字符。

1 个答案:

答案 0 :(得分:0)

这样的事可能有用:

$ sed 's/,\(...\)[^,]*/&,\1/2' input.txt
7518,32S,CDIYBMULKRQHTVNSE,CDI,

它将替换,的第二个匹配,后跟三个字符:

7518,32S,CDIYBMULKRQHTVNSE,
#       ^^^^^^^^^^^^^^^^^^
#       ||||             ^ End of match
#       |^^^ Captured in \1
#       ^ Start of match