zoukankan      html  css  js  c++  java
  • 一行命令搞定/usr/bin/perl^M: bad interpreter

    https://www.cnblogs.com/albertYe/p/8819143.html

    ***************************************************************

    在*nix系统下使用Perl脚本有时会遇到如下错误:
    /usr/bin/perl^M: bad interpreter: No such file or directory
    最常见的原因是因为该脚本在windows系统下进行了编辑。
    windows系统下的换行符是 ,而unix下面是只有 的。如果要解决这个问题,只要去掉 即可。


    第一种解决方案是用sed(假设出问题的脚本名叫filename):
    sed -i 's/ $//' filename


    这种解决方案适合简单的ASCII文件形式。
    如果情况再复杂些,比方说filename是Unicode文件,可能会引入了Unicode中某些新的换行符;
    另外有时候 和 在某些系统上对应的字符编码并不一致。如果再碰上垂直制表符 0x0B 和进纸符 0x0C 就更麻烦了。




    好在Perl提供了另一种解决方案:
    perl -p -i -e "s/R/ /g" filename


    这里用到了从Perl 5.10开始引入的R这个字符组,用来匹配各种换行符,我们只要方便地将其替换为 就可以了。
    同时也没有必要用脚本文件来实现,只需要在shell里执行这样一行命令就行了。
    其中-p表示逐行对filename进行操作,-i表示原地操作,覆盖原始文件,-e则是表示执行后面的语句。

  • 相关阅读:
    xprintf
    Socket调试助手
    ESP8266开发
    WPS for Linux 界面改为中文
    uBlock Origin 广告屏蔽
    Ubuntu删除多余旧内核
    FFmpeg命令
    Mysql-connector-java驱动版本问题
    crontab任务重复执行?不执行?不按照配置执行?大概率是配置出错了!!!
    Binding(四):数据校验
  • 原文地址:https://www.cnblogs.com/zhao1949/p/11975370.html
Copyright © 2011-2022 走看看