在 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_file。sed 命令使用 −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_file。awk 命令读取输入文件的每一行,并使用 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、sed 和 awk。这些工具中的每一个都可以用于从文件中删除行尾,选择使用哪个工具将取决于您的具体需求和偏好。无论您选择哪个工具,都务必记住,从文件中删除行尾可能会使文件难以阅读或操作,因此请确保仅在必要时使用此技术。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP