去掉文件中^M的方法

1、 cat filename1 | tr -d "\r" > newfile
2、 
[url=javascript:;]sed[/url]
-e "s/^V^M//" filename > outputfilename
3、vi: 用vi打开文件
1. 按ESC键
2. 输入 :%s/^M//g
确定 ^M是使用 "CTRL-V CTRL-M" 而不是字面上的 ^M。这个正则式将替换所有回车符前的 ^M为空($是为了保证^M出现在行尾)
4、使用 dos2unix 程序
5、用
[url=javascript:;]vim[/url]
输入 :set notextmode
6、使用perl
cat dos_file.txt | perl -pe '~s/\r//g' > dos_file.txt
可惜,经过上面的处理以后,^M是不存在了,但是换行不成功。所有的东西都在一行上面,看着很费劲。这说明处理的时候文件缺少"\n",可以在替换的时候添加上即可:
cat filename | tr "\r" "\n" > newfile
在 Git 中,`^M` 字符是 Windows 系统中使用的换行符(CRLF)在类 Unix 系统(如 Linux 或 macOS)上的显示形式。当不同系统之间共享代码时,这些字符可能会出现在 `git diff` 的输出中,影响阅读和比较差异[^3]。 --- ### 3.1 设置 Git 自动处理换行符 为避免 `^M` 字符的干扰,可以配置 Git 在提交和检出文件时自动转换换行符: - **Linux/macOS 用户**应使用以下命令: ```bash git config --global core.autocrlf input ``` 这表示在提交时将 CRLF 转换为 LF,在检出时不进行转换,确保本地文件系统保持 LF 换行符[^2]。 - **Windows 用户**推荐使用: ```bash git config --global core.autocrlf true ``` 表示提交时自动将 CRLF 转换为 LF,而在检出时还原为 CRLF,以适配 Windows 的文本编辑习惯[^3]。 设置完成后,再次运行 `git diff` 时,Git 将忽略换行符差异,`^M` 不再显示[^1]。 --- ### 3.2 手动清理已有文件中的 `^M` 字符 如果已经存在包含 `^M` 字符的文件,可以通过以下方式清除: #### 使用 `dos2unix` 工具(推荐) 安装并使用 `dos2unix` 可批量转换文件格式: ```bash sudo apt install dos2unix dos2unix filename.txt ``` #### 使用 `sed` 命令 若无法安装额外工具,可使用 `sed` 删除所有 `^M` 字符: ```bash sed -i 's/\r//' filename.txt ``` #### 使用 Vim 编辑器 打开文件后执行替换命令: ```vim :%s/\r//g ``` --- ### 3.3 防止未来引入 `^M` 字符 除了上述配置外,还可以通过 `.gitattributes` 文件明确指定某些类型文件的换行行为。例如: ```plaintext *.txt text eol=lf *.sh text eol=lf *.bat text eol=crlf ``` 这样可以更精细地控制不同平台下文件的换行符处理逻辑。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值