在 Linux 上将 CRLF 转换为换行符

在 Linux 上将 CRLF 转换为换行符

最好的转换方式是什么回车换行符在 Linux 上的文件中如何添加换行符?

我见过sed命令,但是还有更简单的吗?

答案1

使用此命令:

fromdos yourtextfile

另一种方式:

todos yourtextfile

这些命令位于托弗罗多斯软件包(在最新的发行版中),它还提供了两个包装器unix2dosdos2unix模仿同名的旧 unix 工具。

答案2

使用dos2unix

dos2unix - DOS/MAC 到 UNIX 文本文件格式转换器

dos2unix  [options] [-c convmode] [-o file ...] [-n infile outfile ...]

Options:
          [-hkqV] [--help] [--keepdate] [--quiet] [--version]

答案3

我更喜欢perl

perl -lne 's/\r//g; print' winfile.txt > unixfile.txt

但这非常适合我的用途,而且我很容易记住。并非所有系统都有 dos2unix 命令,但我使用的大多数系统都有 perl 解释器。

另一个是重新编码,dos2unix 和 iconv 的强大替代品;它在 Debian 存储库中的“recode”包中可用:

recode ibmpc..lat1 winfile.txt   # dos2unix
recode lat1..ibmpc unixfile.txt  # unix2dos

为了awk粉丝:

awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt

...和sed

sed 's/\r$//' winfile.txt > unixfile.txt

现在,只需比在十六进制编辑器中手动删除 CR 稍微简单一点,直接从我们在 stackoverflow.com 上的一位朋友,可与牛肉解释器(位于您附近的 Debian 存储库中),

dos2unix 在脑残

,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.

非常感谢 jk 浪费了他生命中的一个小时来写这篇文章!

答案4

我这样做猛击

cat cr_stuffed.file | tr -d \r > no_more_crs.file

相关内容