ファイルがあり、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(レコード区切り記号)として解釈したので、これがあなたにも効果があることを願っています。