端末の各行の先頭からテキストを削除し、各行の最後に貼り付ける方法

端末の各行の先頭からテキストを削除し、各行の最後に貼り付ける方法

次のような長い数値と値のリストがあります。

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

関連情報