llinux下文件被windows系统打开过,提示./scripts/xxxx.sh: line 4: $‘\r‘: command not found.

如果 Linux 内核文件在 Windows 上被打开过,现在在编译时出现错误,通常是因为文件的行结束符从 Unix 风格(LF, \n)变成了 Windows 风格(CRLF, \r\n)。你可以批量修改这些文件的格式,使它们回到 Unix 风格。

下面是如何批量修改整个目录及其子目录中的所有文件的格式,使用 find 和 dos2unix 命令:

方法一:使用 dos2unix
dos2unix 是一个专门用于将 Windows 风格的行结束符转换为 Unix 风格的工具。如果尚未安装,可以使用包管理器安装。例如,在 Debian 或 Ubuntu 系统上,使用以下命令安装:

sudo apt-get install dos2unix

然后,可以使用以下命令将当前目录及其子目录中的所有文件转换为 Unix 行结束符:

find . -type f -exec dos2unix {} +

方法二:使用 sed
如果你更喜欢使用 sed,也可以用它来删除文件中的回车符。以下命令将递归地处理当前目录及其子目录中的所有文件:

find . -type f -exec sed -i 's/\r$//' {} +

方法三:使用 perl
perl 也是一个很强大的文本处理工具。你可以使用 perl 命令来批量修改文件的行结束符:

find . -type f -exec perl -pi -e 's/\r\n/\n/' {} +

备份和测试
在批量处理之前,建议先备份你的文件,以防止意外修改导致数据丢失。你可以先在一个小范围内测试命令,以确保它们的效果符合预期。例如,可以在一个测试目录中运行这些命令:

mkdir test_dir
cp -r path_to_your_files/* test_dir/
cd test_dir
find . -type f -exec dos2unix {} +

测试确认无误后,再对实际文件目录进行批量处理。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值