我想用它的一部分替换一个大字符串——第2列第二个斜杠"/"中的文本。此外,还应保留格式。
我的文本是
99-AAA-9999 | ZZZ/AAA/999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | ZZZ/AAAA AAAA/999999/AAA/99.99.9999 | | 9.99 | 9999.99 |
99-AAA-9999 | ZZZ/AA AAAAAAA/999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | ZZZ/AAA AAAAA AAAAAAA AAAAAA/999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | ZZZ/AAAA AAAAAA AAAAA/999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
我想在从ZZZ/AA中删除文本后这样。。。。。直到第二个斜杠"/",具有良好的格式
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 9999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
实际上还有许多其他列,但我只提供了示例数据。注意:所有的文本和数字都不相同。
请指导我如何使用awk或sed,最好是awk。
$ sed 's:[^ /]*/[^/]*/([^|]*[^ |]) *|:1 |:' file
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 9999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |
99-AAA-9999 | 999999/AAA/99.99.9999 | | 9.99 | 99999.99 |