22

我正在寻找一个 bash 命令来查找每行末尾带有尾随空格的文件。我对删除空格不感兴趣,而只是对查找文件感兴趣。

4

8 回答 8

38

查找包含尾随空格的文件。

find . -type f -exec egrep -l " +$" {} \;
于 2012-06-26T16:16:23.727 回答
22

如果目标是列出在一行或多行中有尾随空格的文件:

grep -r '[[:blank:]]$' .

要不打印行,只打印文件名,还要指定-l选项。那是l单词list,而不是数字1

于 2015-03-27T19:13:19.233 回答
3

查找带有一个或多个尾随空格字符的文件:

find . -name "*" | xargs egrep ".* +$"
于 2012-06-26T15:03:58.663 回答
2

有一个选项可以列出其中不包含任何匹配项的文件;将其和正则表达式用于行尾之前的空格以外的字符。

grep -L '[^ ]$' *

要递归目录,请添加-r. 要同时搜索其他空白字符,请使用字符类$'[^ \t]$'或正则表达式的 POSIX '[^[:blank:]]$'

于 2015-03-27T19:48:06.577 回答
1

使用ack(或ag):

ack -l ' \n'

注意:与其他一些答案一样,这将列出包含一行或多行尾随空格的文件。

于 2015-03-29T22:10:46.310 回答
1

如果目标是在当前路径中列出带有尾随空格的文件:

grep -rli '[[:blank:]]$' .
于 2016-01-08T20:35:30.957 回答
0

如果问题是从字面上查找在每一行末尾都有空格的文件,那么这应该可行:

grep -rL '[^[:blank:]]$' .

-L告诉报告与模式不匹配的grep每个文件,并且模式正在寻找在换行符之前没有空白的行。

于 2015-03-27T19:51:11.320 回答
-2

尝试这个 :

find . -type f -name "* "
于 2019-01-14T22:58:04.237 回答