在文件中用巨大的字符串替换(参数列表太长)

在文件中用巨大的字符串替换(参数列表太长)

我有一个文件,我想用一个巨大的字符串文字替换其中的字符串,形式为“19209302”,“19209329”,这样有 10 万个条目。

我正在使用 sed,但出现“参数列表太长”错误,而如果我使用这样的 100 个条目,它就可以正常工作。

这是我在 shell 脚本 sed "s/@devices/$devices/" active_payload.json 中尝试执行的操作,其中文件有一个字符串 @device,我试图用 $devices 替换它,一个变量包含一个巨大的字符串

我该如何解决这个问题?

答案1

您可以先将要插入流中的字符串转储到临时文件中,然后使用临时文件作为sed输入r选项

例如

echo $devices > tmp_file.txt
sed -i "s/@devices/r tmp_file.txt/" active_payload.json 
rm tmp_file.txt

相关内容