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包中找到(在最近的发行版中),它还提供了两个包装器unix2dos和dos2unix,它们模仿了同名的旧 unix 工具。
Rya*_*son 25
使用dos2unix.
dos2unix - DOS/MAC 到 UNIX 文本文件格式转换器
Run Code Online (Sandbox Code Playgroud)dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...] Options: [-hkqV] [--help] [--keepdate] [--quiet] [--version]
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 浪费了他一个小时的生命来写这篇文章!
我在Bash上这样做:
cat cr_stuffed.file | tr -d \r > no_more_crs.file
Run Code Online (Sandbox Code Playgroud)