在 Linux 上从文件中删除行尾


简介

行尾是特殊字符,用于标记文本文件中的行尾。在像 Linux 这样的基于 Unix 的系统上,行尾由单个换行符 ('
') 表示。在 Windows 上,行尾由回车符 ('\r') 和换行符 ('
') 的组合表示,称为“回车换行”或 CRLF。

有时,您可能需要出于各种原因从文件中删除行尾。例如,您可能希望在将文件用作命令的输入之前从文件中删除行尾,该命令期望单个输入行,或者您可能希望从文件中删除行尾,以便更容易读取或操作文件。

在本文中,我们将介绍如何使用多种命令行工具从 Linux 上的文件中删除行尾。

使用 tr 命令删除行尾

tr 命令是一个实用程序,允许您转换或删除文件或标准输入中的字符。要使用 tr 从文件中删除行尾,请使用以下命令

$ tr -d '
' < input_file > output_file

此命令读取 input_file,删除所有换行符,并将结果写入 output_file-d 选项告诉 tr 删除指定的字符。

以下是如何使用 tr 从文件中删除行尾的示例

$ cat input_file
Line 1
Line 2
Line 3
$ tr -d '
' < input_file > output_file $ cat output_file Line 1Line 2Line 3

如您所见,input_file 中的行尾已被删除,结果文本现在是 output_file 中的单行。

使用 sed 命令删除行尾

sed 命令是用于编辑文本文件的强大实用程序。它可用于删除或替换文件中的特定模式。要使用 sed 从文件中删除行尾,请使用以下命令

$ sed ':a;N;$!ba;s/
//g' input_file > output_file

此命令读取 input_file,删除所有换行符,并将结果写入 output_filesed 命令使用 −a;N;$!ba 循环读取整个文件,并使用 s/
//g
命令删除所有换行符。

以下是如何使用 sed 从文件中删除行尾的示例

$ cat input_file
Line 1
Line 2
Line 3
$ sed ':a;N;$!ba;s/
//g' input_file > output_file $ cat output_file Line 1Line 2Line 3

如您所见,input_file 中的行尾已被删除,结果文本现在是 output_file 中的单行。

使用 awk 命令删除行尾

awk 命令是用于处理文本文件的强大实用程序。它可用于删除或替换文件中的特定模式。要使用 awk 从文件中删除行尾,请使用以下命令

$ awk '{printf("%s", $0)}' input_file > output_file

此命令读取 input_file,删除所有换行符,并将结果写入 output_fileawk 命令读取输入文件的每一行,并使用 printf 函数将其打印到输出文件。%s 格式说明符告诉 printf 将输入视为字符串,而逗号运算符告诉 awk 在没有行尾的情况下打印输出。

以下是如何使用 awk 从文件中删除行尾的示例

$ $ cat input_file
Line 1
Line 2
Line 3
$ awk '{printf("%s", $0)}' input_file > output_file
$ cat output_file
Line 1Line 2Line 3

如您所见,input_file 中的行尾已被删除,结果文本现在是 output_file 中的单行。

结论

在本文中,我们介绍了如何使用三种不同的命令行工具从 Linux 上的文件中删除行尾:tr、sedawk。这些工具中的每一个都可以用于从文件中删除行尾,选择使用哪个工具将取决于您的具体需求和偏好。无论您选择哪个工具,都务必记住,从文件中删除行尾可能会使文件难以阅读或操作,因此请确保仅在必要时使用此技术。

更新于: 2023年1月4日

4K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.