awk文で変数を使用する

awk文で変数を使用する

ファイルがあり、2つの新しいファイルの一部の列をいくつか置き換えています。今はうまくいきます。

「X」(列の文字を置き換えるために使用)や「\ 036」区切り文字、$ 13、$ 6、$ 10、$ 5などの選択された列など、いくつかの変数を以下の構成ファイルに入れたいと思います。 awkステートメントを使用してこれを行う方法をよくわかりません。

構成:

export FIELD_DELIMITER="\036"
export MASK_COLUMN="$13"
export PRINT_COLUMN="$13, $6, $10, $5"

パスワード:

awk 'BEGIN{FS=OFS="\036"} {gsub(/./, "X", $13)} 1' $1 > $file_directory'/'$mask_filename$seperation$temp$DATA_SUFFIX
awk 'BEGIN{FS=OFS="\036"} {print$6,$10,$5,$13}' $1 > $file_directory'/'$mask_filename$seperation$temp1$DATA_SUFFIX

ベストアンサー1

awkパラメータを使用して外部から変数を渡すことができます-v。これを再利用して複数の変数を渡すことができます。

たとえば、スクリプトの最初の行は次のようになります。

awk -v FIELD_DELIMITER='\036' -v WIPEOUT_CHARACTER='X' 'BEGIN{FS=OFS=FIELD_DELIMITER} {gsub(/./, WIPEOUT_CHARACTER, $13)} 1' $1 > $file_directory'/'$mask_filename$seperation$temp$DATA_SUFFIX

私はGNU Awk 4.1.4をチェックし、「\ 036」をASCII RS(レコード区切り記号)として解釈したので、これがあなたにも効果があることを願っています。

おすすめ記事