Vi打开文件显示 ^M

部署运行你感兴趣的模型镜像
一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图:

这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系统下输入的换行符在UNIX/Linux下不会显示为“换行”,而是显示为 ^M 这个符号(这是Linux等系统下规定的特殊标记,占一个字符大小,不是 ^ 和 M 的组合,打印不出来的)。

可以使用下面几种方法处理:

1.使用vi的替换功能。启动vi,进入命令模式,输入以下命令:
:%s/^M$//g # 去掉行尾的^M。

:%s/^M//g # 去掉所有的^M。

:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。

:%s/^M//r/g # 将^M替换成回车。
注意:这里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接键入“^M”。

2.如果是xml文件,可以使用xmllint格式化xml文件,去掉^M:
xmllint --format test.xml

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在 Linux 系统中,`^M` 符号通常出现在从 Windows 系统中转移过来的文本文件中。这是由于 Windows 和 Linux 系统对换行符的定义不同:Windows 使用 `\r\n`(回车+换行),而 Linux 使用 `\n`(换行)[^1]。当在 Linux 中打开这些文件时,多余的 `\r`(显示为 `^M`)可能会干扰脚本执行或影响文件的可读性。 ### 查看文件中的 `^M` 符号 1. **使用 `cat -A` 查看隐藏字符** 通过 `cat -A` 命令可以查看文件中的隐藏字符,包括 `^M`。 ```bash cat -A filename ``` 这会将文件中的 `^M` 显示为 `^M$` 或类似的格式[^2]。 2. **使用 `grep` 检查是否存在 `^M`** 通过 `grep` 可以查找文件中是否包含 `^M` 字符。 ```bash grep -r "^M" filename ``` 这里 `^M` 的输入方式是按住 Ctrl 键后先按 V 再按 M。 3. **使用 `vi/vim` 编辑器查看** 在 `vi` 或 `vim` 中打开文件后,如果文件中存在 `^M`,通常会在每行的末尾看到 `^M` 字符[^3]。 ### 处理文件中的 `^M` 符号 1. **使用 `dos2unix` 命令** `dos2unix` 是一个专门用于将 Windows 格式的文件转换为 Linux 格式的工具。 ```bash dos2unix filename ``` 这会直接将文件转换为 Linux 换行格式,清除所有 `^M` 字符[^3]。 2. **使用 `sed` 命令替换 `^M`** 可以使用 `sed` 命令将文件中的 `^M` 替换为空。 ```bash sed -i 's/^M//g' filename ``` 注意:输入 `^M` 时需要在终端中按 Ctrl + V 后再按 Ctrl + M[^2]。 3. **使用 `vi/vim` 删除 `^M`** 在 `vi` 或 `vim` 中打开文件后,可以使用以下命令批量删除 `^M`: ```vim :%s/^M//g ``` 输入 `^M` 的方式同样是先按 Ctrl + V,再按 Ctrl + M[^3]。 4. **使用 `tr` 命令删除 `\r`** 因为 `^M` 实际上是 `\r`(回车符),所以可以通过 `tr` 命令将其删除。 ```bash cat filename | tr -d '\r' > newfile ``` 这将生成一个没有 `^M` 的新文件[^2]。 5. **使用 `vi` 设置文件格式为 `unix`** 在 `vi` 中打开文件后,可以设置文件格式为 `unix` 并保存。 ```vim :set fileformat=unix :w ``` 这将自动清除文件中的 `^M` 符号。 ### 总结 处理 `^M` 符号的关键在于理解 Windows 和 Linux 系统在换行符上的差异。通过 `cat -A` 可以查看文件中的 `^M`,而使用 `dos2unix`、`sed`、`vi` 或 `tr` 等工具都可以有效清除这些符号,确保文件在 Linux 环境下正常运行。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值