我有一个文件,其中包含必须隐藏的值(替换为 XX),但它们在整行中并不总是位于同一位置,而且我不知道它们的内容。但我知道的是它们相对于特定匹配项的位置。
例如,我想将“00 00”后的第三和第四个数字替换为XX
原来的:
AA BB CC 00 00 01 02 03 04 05 06 07
AA BB CC DD EE FF 00 00 08 09 10 11 12 13 14
期望输出:
AA BB CC 00 00 01 02 XX XX 05 06 07
AA BB CC DD EE FF 00 00 08 09 XX XX 12 13 14
我尝试使用 awk,但只能定位到行首。例如,有没有办法从特定匹配中索引 $2 和 $3?
编辑:该行中只能出现一次00 00
,它不能包含00 00 00
无需担心前导或尾随匹配。
我迄今为止的(令人尴尬的)尝试是:
cat file | awk -F'00 00' '{print $2}' | awk '{gsub ($3,"XX",$0);gsub ($4,"XX",$0)}1'
除了多个 awk 之外,我还丢失了行的开头,因为匹配项之前的所有内容都被我的第一个 awk 删除了