perl替换是从脚本而不是bash产生的空文件



目前我对这个问题感到非常沮丧。我看不到我在做什么错。我在Google Chrome上遇到了这个问题,它通知没有正确关闭。我想摆脱这一点。另外,我还有一些较旧的替代品,这些替代品与全屏尺寸有关。在狂欢中,所有线都会产生预期的结果;但是,在脚本文件中,它产生一个空的设置文件...

这些行在文件中:

cat ~/.config/google-chrome/Default/Preferences | perl -pe "s/"work_area_bottom.*/"work_area_bottom": $(xrandr | grep * | cut -d' ' -f4 | cut -d'x' -f2),/" > ~/.config/google-chrome/Default/Preferences
cat ~/.config/google-chrome/Default/Preferences | perl -pe "s/"bottom.*/"bottom": $(xrandr | grep * | cut -d' ' -f4 | cut -d'x' -f2),/" > ~/.config/google-chrome/Default/Preferences
cat ~/.config/google-chrome/Default/Preferences | perl -pe "s/"work_area_right.*/"work_area_right": $(xrandr | grep * | cut -d' ' -f4 | cut -d'x' -f1),/" > ~/.config/google-chrome/Default/Preferences
cat ~/.config/google-chrome/Default/Preferences | perl -pe "s/"right.*/"right": $(xrandr | grep * | cut -d' ' -f4 | cut -d'x' -f1),/" > ~/.config/google-chrome/Default/Preferences
cat ~/.config/google-chrome/Default/Preferences | perl -pe "s/"exit_type.*/"exit_type": "Normal",/" > ~/.config/google-chrome/Default/Preferences
cat ~/.config/google-chrome/Default/Preferences | perl -pe "s/"exited_cleanly.*/"exited_cleanly": true,/" > ~/.config/google-chrome/Default/Preferences

我已经为这个问题谷歌搜索了很多。但是,我没有正确的搜索词来获得有用的结果。

通过使用perl -p -i -e选项这样解决问题:

perl -p -i -e "s/"exit_type.*/"exit_type": "Normal",/" ~/.config/google_chrome/Default/Preferences

上线足以摆脱Google Chrome的消息不正确关闭

您的问题几乎可以肯定:

 > ~/.config/google-chrome/Default/Preferences

因为>说"截断文件"。更糟糕的是 - 在开始阅读之前,它会首先进行此操作。因此,您在读取文件之前将其截断,从而导致零长度文件输入到零长度文件中。

我建议您仅在Perl而不是中途的房子中进行此操作。perl支持" An -Anto Edit"的-i选项。

或仅在perl中写下您的脚本以开始。(如果给出样品输入和输出,则敲门一个示例,该示例将做您想要的事情将非常简单)。

如果您需要搜索并替换一些我建议使用的文本:

ack -l --print0 '2011...' ~/.config/google-chrome/Default/Preferences | xargs -0 -n 1 sed -i -e 's/2011../2015.../g'

相关内容

  • 没有找到相关文章