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

10

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

ls *.txt

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

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

user82212
источник

Ответы:

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"игнорировать текстовые файлы.

Vivas84
источник
3

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

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

ls !(*.*)

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

ls !(*.txt)
kenorb
источник
0

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

Старейшина Гик
источник
0

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

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

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

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

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

computingfreak
источник