我有一长串数字和值,看起来像这样:
100 value1 value2
此列表中大约有 150 行,我想将每个数字移到值的末尾,使其看起来像这样:
value1 value2 100
我尝试使用这个命令来完成这项工作:
awk -F: '{print $2 $3 $1}' ~path/to/file.txt
但它只是打印文件中的所有内容
100 value1 value2
101 value3 value4
102 value5 value6
请帮忙!
提前致谢!
答案1
事实上,你很接近。 :)
尝试使用:
awk '{print $2,$3,$1}' filename > output_file
并检查它:
cat output_file
答案2
使用awk
:
awk '{ num = $1;$1=""; sub(/^ /,""); print $0,num; }' ~path/to/file.txt
这允许任意数量的列。解释:
- 将第一列保存到变量“num”中,然后将其设置为空(即“”)
- 删除前两列之间的额外空格(使用 sub)
- 打印
- $0 - 整行
- “num”原始第一列
您还可以使用sed
:
sed 's/\([0-9]\+\) \(.*\)/\2 \1/' ~path/to/file.txt