我需要一个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
需要删除的是交易TR之后的换行并将ADE RELATED带到TR以便它拼写交易。
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
如果substitute命令匹配,这将打开一个双行窗口并修改其中的第二个窗口。它总是打印两行中的第一行,然后将其删除。
使用GNU sed:
$ sed -Ez 's/\n[[:digit:]]{15}[[:space:]]{49}//' file
QC J0B 2Y0 CA
:70:NOFX TRADE TRADE RELATED WOOD PURCHASE