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
答え2
この回答の投稿は、2つの列しか含まれていない場合にのみ機能します。
awk '/^[A-Z]/{m=$1;$1=$2;$2=m}1' filename
output
awk '/^[A-Z]/{m=$1;$1=$2;$2=m}1' filename
123 ABC
456 DEF
789 GHI