Ответ 1
Найдите файлы с конечными пробелами.
find . -type f -exec egrep -l " +$" {} \;
Я ищу команду bash для поиска файлов с конечными пробелами в конце каждой строки. Я не заинтересован в удалении пробелов, а просто в поиске файлов.
Найдите файлы с конечными пробелами.
find . -type f -exec egrep -l " +$" {} \;
Если цель состоит в том, чтобы перечислить файлы, которые имеют завершающие пробелы в одной или нескольких строках:
grep -r '[[:blank:]]$' .
Чтобы не печатать строки и печатать только имена файлов, также укажите параметр -l
. Это l
, как и слово list
, а не число 1
.
Найти файлы с одним или несколькими символами конечного пробела:
find . -name "*" | xargs egrep ".* +$"
Существует возможность перечислить файлы, которые не содержат соответствия нигде в них; используйте это и регулярное выражение для символа, отличного от пробела непосредственно перед концом строки.
grep -L '[^ ]$' *
Чтобы перезаписать каталоги, добавьте -r
. Для поиска других символов пробела используйте класс символов $'[^ \t]$'
или POSIX '[^[:blank:]]$'
для регулярного выражения.
Если целью является список файлов с конечным пробелом в текущем пути:
grep -rli '[[:blank:]]$' .
Если вопрос в буквальном смысле заключается в поиске файлов с пробелом в конце каждой отдельной строки, то это должно работать:
grep -rL '[^[:blank:]]$' .
-L
сообщает grep
сообщать обо всех файлах, которые не соответствуют шаблону, и шаблон ищет строки, которые не имеют пробела, непосредственно предшествующего новой строке.
ack -l ' \n'
Примечание. Как и некоторые другие ответы, в этом списке будут перечислены файлы, содержащие одну или несколько строк с конечными пробелами.