我大约有12k个文件,其字符串如下:
script_oid("1.3.6.1.4.1.25623.7.0.391810");
我需要将最后6位数字(391810)更改为以300000开始的顺序ID。到目前为止,我已经这样做了:
`find . -type f -name '*.nasl' -exec sed -i -e 's/script_oid("1.3.6.1.4.1.25623.7.0.\(.*\)/script_oid("1.3.6.1.4.1.25623.1.0.\1/g' {} \;`
我一直在与AWK尝试一些想法,但是到目前为止,我还没有找到解决方案。因此,我在这里需要帮助。我正在Ubuntu 16.04上运行它。
预先感谢您的帮助。
最诚挚的问候,
答案 0 :(得分:2)
请尝试:
id=300000
while IFS= read -r -d "" f; do
sed -e "s/script_oid(\"1.3.6.1.4.1.25623.7.0.\(.*\)/script_oid(\"1.3.6.1.4.1.25623.1.0.$id/g" "$f"
id=$((++id))
done < <(find . -type f -name '*.nasl' -print0)
请注意,id
是按照出现顺序由find
分配的。