我需要将(在文本文件中)行中的最后一个单词移动到该行的开头。
来自:
I Am Legend (2007)
RoboCop (1987)
Shrek (2001)
To This:
(2007) I Am Legend
(1987) RoboCop
(2001) Shrek
答案 0 :(得分:4)
使用GNU sed:
sed 's/\(.*\)\((.*)\)/\2 \1/' file
输出:
(2007) I Am Legend (1987) RoboCop (2001) Shrek
要“就地”编辑文件:
sed -i 's/\(.*\)\((.*)\)/\2 \1/' file
答案 1 :(得分:3)
我会使用awk
:
awk '{l=$NF;$NF=NF-1;print l,$0}' input.file
我将最后一个单词存储在变量l
中,然后将字段数减少1(是的,这是可能的),然后打印最后一个单词加上剩余的行。