将 mathced 模式移动到文件中行的开头

将 mathced 模式移动到文件中行的开头

输入:

    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/在任何非字符之后移动.到行的开头。

相关内容