【发布时间】:2019-09-18 08:32:24
【问题描述】:
我正在尝试交换单词和数字之间出现的单词: 我有大文件,行有这个顺序,但数字不同,但单词“WORD,AGAIN,PIC”不会改变。
23 TWO-ONE2 WORD 5 AGAIN CIP D(89). 1234541120
我想要的输出应该是:
23 TWO-ONE2 CIP D(89) WORD 5 AGAIN. 1234541120
CIP "D(89) " 附近的值,可以改成 F7(934) 或类似的值,但在 () 中总是一个数字。
我试过命令:
sed -r 's/(WORD[0-9]+) (AGAIN+) (CIP[A-Z][0-9]([A-Z][0-9])+)/\3 \1 \2/'
sed -E 's/^(WORD.+AGAIN).+(CIP \+)/\2 \1/'
我将不胜感激!
【问题讨论】:
-
sed -E 's/(WORD +[0-9]+ +AGAIN)( +)(PIC +[A-Z]\([0-9]+\))/\3\2\1/'? -
感谢您的回复。输出没有改变
-
我不知道为什么它不工作,可能是因为给定的空间? @WiktorStribiżew
-
尝试用
[[:space:]]+替换空格+ -
sed 's/\(WORD.*AGAIN\) *\(CIP *[^ ]*\)\./\2 \1\./'怎么样?