如何在 Linux 上删除文件中的尾随空格
问题:我有一个文本文件,为了格式化目的,我需要删除每行中的所有尾随空格(例如空格和制表符)。有没有一个快速、简单的 Linux 命令行工具可以用来实现这个目的?
当您为程序编写代码时,您必须了解需要遵循的标准编码风格。例如,“尾随空白”通常被认为是邪恶的,因为当它们进入代码存储库进行修订控制时,它们可能会导致很多问题和混乱(例如“错误差异”)。许多 IDE 和文本编辑器都能够突出显示并自动修剪每行末尾的尾随空格。
以下是在 Linux 命令行环境中删除尾随空格的几种方法。
方法一:sed
删除不需要的空格的简单命令行方法是通过 sed。
以下命令删除 input.java
中每行末尾的所有空格和制表符。
$ sed -i 's/[[:space:]]*$//' input.java
如果有多个文件需要删除尾随空格,您可以结合使用 find
和 sed
命令。例如,以下命令删除在当前目录及其所有子目录中递归找到的所有 *.java
文件中的尾随空格。
$ find . -name "*.java" -type f -print0 | xargs -0 sed -i 's/[[:space:]]*$//'
方法二:Vim
Vim 文本编辑器还能够突出显示和修剪文件中的空格。
要突出显示文件中的所有尾随空格,请使用 Vim 编辑器打开该文件,并通过在 Vim 命令行模式下键入以下内容来启用文本突出显示。
:set hlsearch
然后通过键入以下内容搜索尾随空格:
/s+$
这将显示整个文件中找到的所有尾随空格和制表符。

然后,要使用 Vim 清除文件中的所有尾随空格,请键入以下 Vim 命令。
:%s/s+$//
此命令的意思是用空字符替换在行末尾找到的所有空白字符 (s+$
)。