このコマンドを使用して、別のサブコマンドを使用してファイルから複数の列を印刷しようとします 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