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

9

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

ls *.txt

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

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

    
задан user82212 22.01.2013 в 20:10
источник

5 ответов

7

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

ls | grep -v '\.'

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

ls | grep -v '\.txt'

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

    
ответ дан iBelieve 22.01.2013 в 20:25
источник
6

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

Например, ls --ignore="*.txt" для игнорирования txt-файлов.

    
ответ дан Vivas84 22.01.2013 в 20:44
3

Просто отрицайте свой шаблон (обратите внимание: shopt -s extglob требуется).

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

ls !(*.*)

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

ls !(*.txt)
    
ответ дан kenorb 21.12.2015 в 23:28
0

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

    
ответ дан Elder Geek 21.12.2015 в 22:58
0

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

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

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

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

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

    
ответ дан computingfreak 24.04.2017 в 05:27