awkコマンドで接続コマンドを使用する方法

awkコマンドで接続コマンドを使用する方法

このコマンドを使用して、別のサブコマンドを使用してファイルから複数の列を印刷しようとします awk

以下は、接続コマンドの使用中にエラーが発生するコマンドです。awk

awk -F\| '{if(length($1) == 12 && $21 == "SOUTHWEST") print $1 "," substr($2,5,9) "," c == $3$15; print  c }' sample.txt | head > test.csv

「c付近の構文エラー」エラーが発生します。

Sample.txt には次のデータが含まれます。

0011D959A6BC|308-452591505|70605|1|1|TCD2000||LK012|0|||1|0||2581|850|ルイジアナ州レイクチャールズ|308|||南西部|null|ルイジアナ州レイクチャールズ|1|A9200019036CF2B|1|1|0

予想出力:0011D959A6BC,452591505,706052581

私のスクリプトをリンクする例として、次の構文を使用します。

echo '12345|123|6789'| awk -F\| '{c=$1$2; print c}' 

答え1

見つかった例では、c変数は役に立ちません。文字列(ここではフィールド)を直接リンクして結果を印刷できます。

必要なものを達成する1つの方法は次のとおりです。

awk -F\| '{
  if(length($1) == 12 && $21 == "SOUTHWEST")
    printf("%s , %s, %s\n",$1 ,substr($2,5,9),$3$15)
  }' sample.txt | head > text.csv

関連情報