均一な形式の出力

均一な形式の出力

Linuxでは、grepコマンドを使用していくつかのデータを抽出しました。以下は私が得たものです。列1には数字または文字列を含めることができ、列2は同じです。

123 ABC
456 DEF
GHI 789

数字のある列1と文字列のある列2、またはその逆の場合は、次のような出力が必要です。

123 ABC
456 DEF
789 GHI

ベストアンサー1

awk '{ print (/^[A-Z]/?$2 FS $1 : $0) }' infile

行が大文字のASCII文字で始まると列が変わり、そうでなければ行は変更されずに印刷されます。

または短く言うと:

awk '/^[A-Z]/{ $0=$2 FS $1 }1' infile

おすすめ記事