awkまたはsed、最初の列を最後に移動しますか?

awkまたはsed、最初の列を最後に移動しますか?

以下のようにスペースで区切られたテキストファイルがあります。最初の列が各行の終わりになるように列を並べ替える必要があります。

orを使ってこれを行う方法を知っていますが、簡単な方法がcut -d' ' f1あるかどうか疑問に思います。awksed

テキストファイル:

™️       trade mark
ℹ️       information
↔️..↙️    left-right arrow..down-left arrow
↩️..↪️    right arrow curving left..left arrow curving right
⌚..⌛    watch..hourglass done
⌨️       keyboard
⏏️       eject button
⏩..⏳    fast-forward button..hourglass not done
⏸️..⏺️    pause button..record button
Ⓜ️       circled M
▪️..▫️    black small square..white small square
▶️       play button
◀️       reverse button

シンボリックリストはこの説明に従ってください。

ベストアンサー1

使用sed

sed 's/\([^ ]*\) *\(.*\)/\2 \1/' infile

\([^ ]*\)空白以外の文字が表示されるまで、すべての項目と一致します。
括弧は\(...\)グループマッチングに使用され、対応するインデックスはです\1

\(.*\)最初のグループ以降のすべての項目を一致させ、インデックスを作成します\2。グループ内で一致する
と、出力内のグループ1とグループ2の間のスペースに一致するすべての内容は無視されます。 (GNUを使用)または(標準)を使用して、ASCII SPCだけでなくすべての空白文字と一致させることができます。 *\(...\) *\(...\)\s*sed[[:space:]]*

次に、最後に最初に一致する項目を印刷します。グループ2比較するグループ1その間にスペースがあります。

おすすめ記事