RegEx用于多行搜索并使用sed替换

埃里克·夏邦诺

我需要有一个RegEx,它\n以一行的中间位置作为起点,之前的内容是随机的,并在15位数字和第二行的49个alpha之后进行替换。我需要用空格替换所有内容,但是第二行需要与第一行合并。

尝试

sed -r -e '{N;s/\n[[:digit:]]{15}[[:space:]]{49}//}'

输入值

QC HOH 0H0 CA
:70:NOFX TRADE TR
100000100200621                                                 ADE RELATED WOOD                                                                                         PURCHASE

记录的屏幕截图

需要删除的是TRADE TR之后的换行符,并将ADE RELATED带到TR,因此拼写为TRADE。

期望的输出

QC H0H 0H0 CA
:70:NOFX TRADE TRADE RELATED WOOD                                                                                         PURCHASE

这可能对您有用(GNU sed):

sed -E 'N;s/\n[[:digit:]]{15}[[:space:]]{49}//;P;D' file

这将打开一个两行窗口,并在替代命令匹配时修改其中的第二个窗口。它总是打印两行的第一行,然后将其删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章