在Linux上删除文件的行尾

在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。这些工具中的每一个都可以用来删除文件中的行尾,而选择使用哪种工具将取决于你的具体要求和偏好。无论你选择哪种工具,重要的是要记住,从文件中删除行尾会使文件更难阅读或操作,所以要确保只在必要时使用这种技术。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Linux 基础