复制第一个位置awk的最后一列

Giu*_*Pes 2 bash awk text sed preg-replace

我想在第一个位置复制colum的第一个值并注释掉旧值.例如 :

word1 word2 1233425     -----> 1233425 word1 word2 #1233425
word1 word2 word3 49586 -----> 49586   word1 word2 word3   #49586
Run Code Online (Sandbox Code Playgroud)

我不知道号码前面的字数.

我尝试使用awk脚本:

awk '{$1="";score=$NF;$NF="";print $score $0 #$score}' file
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

fed*_*qui 5

那这个呢?它与你的非常相似.

$ awk '{score=$NF; $NF="#"$NF; print score, $0}' file
1233425 word1 word2 #1233425
49586 word1 word2 word3 #49586
Run Code Online (Sandbox Code Playgroud)

请注意,在您的情况下,您正在清空$1,这是不必要的.只需score按照您的方式存储,然后添加#到开头$NF.


Jot*_*tne 5

运用 awk

awk '{f=$NF;$NF="#" $NF;print f,$0}' file
Run Code Online (Sandbox Code Playgroud)

既然我们发布了相同的答案,这里是一个较短的变化:)

awk '{$0=$NF FS$0;$NF="#"$NF}1' file
Run Code Online (Sandbox Code Playgroud)

$0=$NF FS$0添加最后一个字段到行
$NF="#"$NF添加#到最后一个字段.
1印刷线