Как вывести список текстовых файлов без расширения .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.