次のような長い数値と値のリストがあります。
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" に保存し、空の値 (たとえば "") に設定します。
- 最初の2つの列間の余分なスペースを削除する(subを使用)
- 印刷
- $0 - 全行
- "num" 元の最初の列
以下も使用できますsed
。
sed 's/\([0-9]\+\) \(.*\)/\2 \1/' ~path/to/file.txt