在 Linux 上将 CRLF 转换为换行符

Joe*_*Fan 35 linux carriage-return

CRLF转换为 Linux 上文件中的换行符的最佳方法是什么?

我见过sed命令,但有什么更简单的吗?

ave*_*oll 43

使用这个命令:

fromdos yourtextfile
Run Code Online (Sandbox Code Playgroud)

另一种方式:

todos yourtextfile
Run Code Online (Sandbox Code Playgroud)

这些命令可以在tofrodos包中找到(在最近的发行版中),它还提供了两个包装器unix2dosdos2unix,它们模仿了同名的旧 unix 工具。

  • +1 比目前最高投票的“使用 dos2unix”答案有用得多。 (2认同)
  • @SorinSbarnea:类似`find 的东西。-name '*.txt' -print0 | xargs -null fromdos` (2认同)
  • @Jonik 是什么让它“更有用”?严肃的问题 (2认同)

Rya*_*son 25

使用dos2unix.

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

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

Options:
          [-hkqV] [--help] [--keepdate] [--quiet] [--version]
Run Code Online (Sandbox Code Playgroud)

  • 而 unix2dos 则相反。 (2认同)

qua*_*ote 23

我更喜欢perl

perl -lne 's/\r//g; print' winfile.txt > unixfile.txt
Run Code Online (Sandbox Code Playgroud)

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

另一个是recode,它是 dos2unix 和 iconv 的强大替代品;它可以在 Debian 存储库的“recode”包中找到:

recode ibmpc..lat1 winfile.txt   # dos2unix
recode lat1..ibmpc unixfile.txt  # unix2dos
Run Code Online (Sandbox Code Playgroud)

对于awk粉丝:

awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt
Run Code Online (Sandbox Code Playgroud)

...和sed

sed 's/\r$//' winfile.txt > unixfile.txt
Run Code Online (Sandbox Code Playgroud)

现在,只比在十六进制编辑器中手动删除 CR 稍微简单一点,直接来自我们的一位 stackoverflow.com 朋友,可与牛肉解释器(位于您友好的邻居 Debian 存储库中)一起使用,

dos2unix 在brainfuck

,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.
Run Code Online (Sandbox Code Playgroud)

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

  • “最佳方式”是主观的。这对我来说最有效(我对 perl 比对 sed 更舒服)。我没有保证它最适合你。 (2认同)

Jus*_*eff 9

我在Bash上这样做:

cat cr_stuffed.file | tr -d \r > no_more_crs.file
Run Code Online (Sandbox Code Playgroud)


war*_*ren 8

我想你也可以使用tr,(虽然我没有可以尝试的有趣的格式文件):

tr -d '\r' < file1 > file2
Run Code Online (Sandbox Code Playgroud)


ope*_*llo 5

我更喜欢Vim:set fileformat=unix. 虽然不是最快的,但它确实给了我一个预览。它对于具有混合结尾的文件特别有用。