输入:
1991/10/15,DFD.T/SDFDS.Z/9887/15MAR/DFC/I.X/918875797553.G/IUYT/1/453.H/LPJB
1991/10/15,DFD.T/RUDFR.Z/9887/15MAR/DFC/I.X/918875797554.G/IUYT/1/453.H/LPJB
预期的:
.X/918875797553.T/SDFDS,1991/10/15,DFD.Z/9887/15MAR/DFC/I.G/IUYT/1/453.H/LPJB
.X/918875797554.T/RUDFR,1991/10/15,DFD.Z/9887/15MAR/DFC/I.G/IUYT/1/453.H/LPJB
需要将 .X/followed value 和 .T/followed value 移动到行首。有人请针对上述问题提出解决方案。我的文件中有数千行,想要将它们转换为相同的格式。
答案1
使用sed
和两个替换:
sed 's/\(.*\)\(\.T\/[^.]*\)/\2,\1/;s/\(.*\)\(\.X\/[^.]*\)/\2\1/' file
这会将.T/
后面的任何非.
字符移动到行的开头,并,
在第一个替换中添加 a。
然后,在第二次替换中,它会.X/
在任何非字符之后移动.
到行的开头。