![](/img/trans.png)
[英]Take the last word from a line and add it at the beginning using BASH
[英]Bash - Move last word in line to beginning of line
我需要将(在文本文件中)行中的最后一个单词移动到该行的开头。
由此:
I Am Legend (2007)
RoboCop (1987)
Shrek (2001)
对此:
(2007) I Am Legend
(1987) RoboCop
(2001) Shrek
使用GNU sed:
sed 's/\(.*\)\((.*)\)/\2 \1/' file
输出:
(2007) I Am Legend (1987) RoboCop (2001) Shrek
要“就地”编辑文件:
sed -i 's/\(.*\)\((.*)\)/\2 \1/' file
我会用awk
:
awk '{l=$NF;$NF=NF-1;print l,$0}' input.file
我将最后一个字存储在变量l
,然后将字段数减少1(是的,这是可能的),然后打印最后一个字加上剩余的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.