我希望使用shell脚本在某些列中使用X屏蔽某些数据。例如,我想屏蔽第一列,在新文件中只有X.不确定最好的方法来实现这一目标。
输入
DL1234, 454890, tall, A, A7, 1234, 457, Male, Active
所需输出
XXXXXX, 454890, tall, A, A7, 1234, 457, Male, Active
答案 0 :(得分:2)
您可以将awk
与逗号字段分隔符一起使用,并仅修改$1
:
s='DL1234, 454890, tall, A, A7, 1234, 457, Male, Active'
awk 'BEGIN{FS=OFS=","} {gsub(/./, "X", $1)} 1' <<< "$s"
XXXXXX, 454890, tall, A, A7, 1234, 457, Male, Active
修改强>
更新多个字段:
awk -v cols='1,3,7' 'BEGIN{FS=OFS=", "} {
n=split(cols, a, /,/); for (i=1; i<=n; i++) gsub(/./, "X", $a[i])} 1' <<< "$s"
XXXXXX, 454890, XXXX, A, A7, 1234, XXX, Male, Active
这里我们将要更新的列号列表作为命令行参数传递。