ulk*_*kar 3 bash field masking
我有一个用冒号分隔的文件,比如这个
1:2:3:4:5:6:7:8:9:10
11:12:13:14:15:16:17:18:19:20
Run Code Online (Sandbox Code Playgroud)
等等
每行总是相同数量的字段
我希望能够屏蔽(用*替换字段)该文件每行的第x和第y个字段.假设我想屏蔽第5和第7个字段,以便文件看起来像:
1:2:3:4:*:6:*:8:9:10
11:12:13:14:*:16:*:18:19:20
Run Code Online (Sandbox Code Playgroud)
我怎样才能在bash中实现这样的目标?
谢谢
这样的事情可以帮助你入门
#!/bin/bash
x=5
y=7
awk -F':' -vX="$x" -vY="$y" 'BEGIN{OFS=FS}{$X="*";$Y="*"}{print}' input
Run Code Online (Sandbox Code Playgroud)
输出:
$ ./fields.sh
1:2:3:4:*:6:*:8:9:10
11:12:13:14:*:16:*:18:19:20
Run Code Online (Sandbox Code Playgroud)