通过perl在文本文件中插入一行失败

通过perl在文本文件中插入一行失败,perl,Perl,我试图使用perl在文本文件的第二行插入一个新行。但它一直在失败 我使用下面的命令来实现同样的功能 perl -ni -e "print; print \"permissibleCars = [ ${part[*]} ]\n\" if $. == 2" query/containerId_count.js 但我不断地犯错误:-- 你能帮我做同样的事吗 关于试试这个: export PARTS=${part[*]} perl -lni -e 'print; print "permissibl

我试图使用perl在文本文件的第二行插入一个新行。但它一直在失败

我使用下面的命令来实现同样的功能

  perl -ni -e "print; print \"permissibleCars = [ ${part[*]} ]\n\" if $. == 2" query/containerId_count.js
但我不断地犯错误:--

你能帮我做同样的事吗

关于

试试这个:

export PARTS=${part[*]}
perl -lni -e 'print; print "permissibleCars = [".join(",",split/ /,$ENV{PARTS})."]" if $. == 2' query/containerId_count.js

在linux平台上,我们应该对一行使用单报价。请参阅第19页和第20页。

尝试了这一点,但没有起作用:--在EOF at-e第1行之前的任何地方都找不到字符串终止符'''>>
perl-ni-e'打印;如果$==2',则打印“permissibleCars=[\${part[*]}]\n。
这不会给出错误,但它不会复制存储在变量中的数据,而是复制了permissibleCars=[${part[*]}]作为text.So,添加到问题中,在您的案例中,
${part[*]}
应该返回什么root@vm-test-001:~/mongosearch#echo$部分“C:00000092666270:53882159774“不,这似乎有一个奇怪的问题。它是随机添加]和修剪数组中的对象。@user2854333那么使用此命令可以得到什么输出?看起来问题在于如何构造
${part[*]}
。它是一个数组,将值作为数组的子集保存。它可以像“C:1000817:57160911940”,“C:1000817:57176485410”,“C:1000817:57205942228”,“C:1000817:5721148466”,“C:1000817:57215240125”,“C:1000817:57218809582”,“C:1000817:5721636702”,“C:1000817:57235388574”,“C:1000817:5723735061”,“C:1000817:57239290315”,“C:1000817:572572756”,“C:1000817:57257272757”,“100072757:3898038”,“C:37957”,“C:1000882:379598272”,“C:1000960:379598451”同样,我可以使用sed,但它是POSIX标准的sed实现,字节长度限制是8192字节。好的,明白了。然后在perl脚本中,您需要将
part
作为数组还是平面字符串?
export PARTS=${part[*]}
perl -lni -e 'print; print "permissibleCars = [".join(",",split/ /,$ENV{PARTS})."]" if $. == 2' query/containerId_count.js