当前位置: 首页 > 编程笔记 >

如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?

松思源
2023-03-14
本文向大家介绍如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?,包括了如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?的使用技巧和注意事项,需要的朋友参考一下

在Windows和Unix系统之间传输文件时,经常会遇到与行尾字符有关的问题。这是因为Windows中的EOL字符在Unix中未被识别为EOL字符。因此,要解决此问题,当文件从Windows传输到Unix时,我们需要遵循以下方法之一。

使用dos2unix

dos2unix命令用于将Windows平台的EOL字符转换为Unix平台。大多数Unix系统都预安装了此命令。下面我们看到使用此命令时如何转换文件本身或保存文件副本。

# change the file itself.
dos2unix file_name.txt
# Save a copy of the file.
dos2unix -n file_name.txt new_file_name.txt

使用sed

当我们将文件从Windows传输到Unix平台并打开以进行读取时,行尾字符显示为^ M(称为control-M)。因此,我们使用sed命令替换^ M个字符。在这里,我们还可以将编辑后的文件另存为新文件。

sed 's/^M$//' file_name.txt > new_file_name.txt

使用tr

tr命令用于翻译或删除字符。在这种情况下,如果打开后在unix系统中显示为“ \ r”,我们将使用它从Windows系统中删除文件中的行尾。

tr -d '\r' file_name.txt > new_file_name.txt

上面的命令成功执行后,我们可以在Unix系统中成功打开文件,而无需显示Windows系统中的EO L值。

 类似资料:
  • 问题内容: 我有几个要从Dos转换为Unix的文件。是否有任何API或方法可以帮助我做到这一点? 问题答案: 有Linux工具可以做到这一点(例如)。 在Java中,可以使用。 DOS 用于线路终止,而UNIX使用单个。 因此,不存在,没有API。是的,这很容易做到。

  • 问题内容: 如果打开在Windows中创建的文件,则所有行均以结尾。 如何一次删除所有这些字符? 问题答案: DOS2UNIX的是一个命令行实用工具,将做到这一点,还是会如果你使用- - 输入^ M,或者你可以和vim会为你做它。 ‘fileformat’设置的文档在这里,并且vim Wiki上有关于行尾转换的完整页面。 另外,如果您来回移动文件很多,您可能不想转换它们,而是这样做,所以vim会知

  • 问题内容: 我有和。我想转换和整数和执行。如何在UNIX中做到这一点? 当前为我返回的结果。 问题答案: 标准解决方案: 您也可以: 但是请注意,这将被视为八进制数字!(因此与相同,但与有所不同)。

  • 给定一个包含有效正则表达式的条目的“字典”,例如: 在python中,我如何将每个条目或“字典值”分离到它自己的行上?我不能简单地用拆分,因为如果您将一个条目值视为本身,,这将破坏该值,因为它包含相同的字符。 我不仅仅是想匹配这些角色,我还想替换它们。

  • 问题内容: 我在管理面板中使用ckeditor,但在用户提交表单中使用简单的文本框,因此用户可以输入文本并提交。问题是,当用户在带有换行符的textarea中输入文本时,它将另存为SQL。我想在sql中的每一行之后添加BR。 例如,用户提交: 已保存到数据库中,并在输出中显示下一行。但我想在数据库中另存为: 我使用nl2br,但不适用于用户提交表单。如果我在管理处理表单上使用nl2br,则在已经使

  • 我有以下字符串: 用。我需要附加。 当我在下面尝试时。它不起作用。我试图用,但它不起作用。我还需要