我有一个文件,我正在对两个新文件中的某些列进行一些替换。现在工作正常。
我想将一些变量(如“ 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
您可以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(记录分隔符),因此我希望它也对您有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句