Unix like系统清除 ^M

最近在接手其他人的项目,有些是用windows开发的,安装到linux发现执行不起来,出现了错误 -bash: /etc/init.d/tm: /bin/sh^M: bad interpreter: No such file or directory (还有一些配置无法读取等等了), 后来想起来windows 和unix 的换行符不同导致的,windows下默认为 \r\n, mac和linux等类unix系统为 \n

怎么看到这种现象呢, 简单的可以cat命令

▶ cat -v setup.py
__author__ = 'likun.mo'^M
from setuptools import setup^M
^M

注意这个 ^M 想要自己输入需要用组合键 ctrl+v ctrl+m

解决

怎么把文件中的 ^M 去掉呢?我开始用了比较老土的办法,把文件重命名,然后touch一个新文件,复制粘贴过来。后来发现整个目录都要这样修改很麻烦,找到了一个名为 dos2unix 的工具。

macos上安装 brew install dos2unix

使用也很简单

▶ dos2unix setup.py
dos2unix: converting file setup.py to Unix format...

▶ cat -v setup.py
__author__ = 'likun.mo'
from setuptools import setup

批量查找并替换

find . -name "*.py" -exec dos2unix {} \;
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页