这个命令:
sed -i "\|^pref\.fullscreen\.toolbarPixels|d" ~/.vmware/preferences很管用。
但这条命令:
perl -pi -e "\|^pref\.fullscreen\.toolbarPixels|d" ~/.vmware/preferences给我输出:
Backslash found where operator expected at -e line 1, near "pref\"
Backslash found where operator expected at -e line 1, near "fullscreen\"
syntax error at -e line 1, near "\|"
Execution of -e aborted due to compilation errors.为什么?
更新:
包含以下内容的test.txt文件:
melon
banana
peach
apple这个命令:
perl -ni -e "print unless m|apple|; print unless m|banana|" test.txt返回:
melon
melon
banana
peach
peach
apple而不是:
melon
peach为什么?
发布于 2020-10-28 12:52:28
Perl不是sed的替代器,它碰巧支持类似的s/pattern/replacement/语法,但这并不意味着其他sed命令可以工作。
你可以代替
perl -ni -e "print unless m|^pref\.fullscreen\.toolbarPixels|"我觉得,或者只是
perl -ni -e "print unless /^pref\.fullscreen\.toolbarPixels/"因为似乎没有特别的理由使用非标准的正则分隔符。
https://unix.stackexchange.com/questions/616836
复制相似问题