Как вывести список текстовых файлов без расширения .txt?


10

Например, как я могу повторить:

ls *.txt

когда в моих текстовых файлах отсутствует .txtокончание, и что касается расширений, они появляются так же, как и многие другие типы файлов?

В качестве альтернативы, можно ли перечислить конкретно только файлы, которые не имеют расширения файла?

Ответы:


8

Чтобы сопоставить файлы, которые вообще не имеют расширения, вы можете использовать команду

ls | grep -v '\.'

Чтобы сопоставить файлы, которые не имеют .txtрасширения, вы можете использовать команду

ls | grep -v '\.txt'

Это передаст список файлов в текущем каталоге grep, который удалит все имена файлов, которые имеют .(или .txtдля второй команды) в них.


Спасибо! Это ответило на мой вопрос. Кроме того, возможно ли использовать тот же инструмент grep с другими командами? Например, с задачами? (для преобразования
концов

1
Да, grepможет использоваться с любой командой. |Символ используется для передачи вывода из одной команды в другую, и grepбудет соответствовать линиям , которые имеют (или не имеют) конкретный текст. Но если вы хотите изменить текст (кроме простой печати совпадающих строк), вы должны взглянуть на sedкоманду.
iBelieve

Чтобы найти только текстовые файлы (исключая каталоги и двоичные файлы), используйте:ls --classify | grep -v '/'.'*'
chaskes

6

С ls -ignore="PATTERN"его помощью вы можете исключить файлы из результата ls.

Например, ls --ignore="*.txt"игнорировать текстовые файлы.


3

Просто отмените ваш шаблон (примечание: shopt -s extglobобязательно).

Чтобы отобразить все файлы без расширения:

ls !(*.*)

Чтобы показать не txtфайлы, попробуйте:

ls !(*.txt)

0

Команда ls -SX1|lessбудет отсортирована по расширению в одном столбце, а файлы без такового будут перемещены в начало. Передача с меньшим количеством каналов, как в примере, предлагается для каталогов с более чем несколькими файлами, чтобы ограничить вывод всего экрана за один раз.


0

Я предпочитаю избегать использования grep для простых операций листинга.

Во избежание использования grep,

Я рекомендую использовать ls !(*.*)для поиска файлов без расширения файла, и

ls -I "*.gz" -I "*.tz" или ls --ignore={"*.jpg","*.png","*.bmp"}

исключить определенные расширения файлов

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.