1
我正在寻找使用shell脚本在某些列中使用X来掩盖某些数据。例如,我想掩盖第一列只有X在新文件中。不知道最好的方法来完成这一点。掩盖选定的分隔列
输入
DL1234, 454890, tall, A, A7, 1234, 457, Male, Active
所需的输出
XXXXXX, 454890, tall, A, A7, 1234, 457, Male, Active
我正在寻找使用shell脚本在某些列中使用X来掩盖某些数据。例如,我想掩盖第一列只有X在新文件中。不知道最好的方法来完成这一点。掩盖选定的分隔列
输入
DL1234, 454890, tall, A, A7, 1234, 457, Male, Active
所需的输出
XXXXXX, 454890, tall, A, A7, 1234, 457, Male, Active
您可以使用awk
用逗号SE字段分隔符和修改只$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
这里我们传递列号的名单进行更新作为命令行参数。
通常,可以使用期望列数的循环。 –
@anubhava你好,它工作很好,谢谢!你有一个循环多列的例子吗? – Defcon
@anubhava嗨,如果分隔符是'^^',解决方案会有所不同。这将是两个字符 – Defcon