[英]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.