我想在第一个位置复制colum的第一个值并注释掉旧值。 例如:
word1 word2 1233425 -----> 1233425 word1 word2 #1233425
word1 word2 word3 49586 -----> 49586 word1 word2 word3 #49586
我不知道号码前的字数。
我尝试使用awk脚本:
awk '{$1="";score=$NF;$NF="";print $score $0 #$score}' file
但它不起作用。
答案 0 :(得分:5)
这个怎么样?它与你的非常相似。
$ awk '{score=$NF; $NF="#"$NF; print score, $0}' file
1233425 word1 word2 #1233425
49586 word1 word2 word3 #49586
请注意,在您的情况下,您正在清空$1
,这不是必需的。只需将score
存储起来,然后将#
添加到$NF
的开头。
答案 1 :(得分:5)
使用awk
awk '{f=$NF;$NF="#" $NF;print f,$0}' file
由于我们发布了相同的答案,因此这是一个较短的变体:)
awk '{$0=$NF FS$0;$NF="#"$NF}1' file
$0=$NF FS$0
将最后一个字段添加到第一行
$NF="#"$NF
将#
添加到最后一个字段
1
打印行
答案 2 :(得分:1)
一种perl方式:
perl -pe 's/^(.+ )(\d+)/$2 $1 #$2/' infile
答案 3 :(得分:1)
sed 's/\(.*\) \([^[:blank:]]\{1,\}\)/\2 \1 #\2/' YourFile
使用GNU sed add -posix选项