Как я могу найти файлы с 7 символами (и без расширения) в их именах?

Я хочу перечислить файлы, которые содержат только семь символов (без расширений) в имени файла.

У меня есть эти файлы в каталоге, например:

1234567
bar.12
dog.cat
1234567.txt
tst.new
big.tst
abcdefg
abcd.efg

Я хочу перечислить файлы, используя команду ls, чтобы найти имена файлов без расширений, которые имеют ровно 7 символов. Я хочу, чтобы выходные данные выглядели примерно так:

$ ls <some kind of code>
1234567
abcdefg

Я предпочитаю не использовать какие-либо глобусы или команду find.

0
задан 21 April 2017 в 00:42

3 ответа

В Bash:

 for f in ??????? ; do 
     [[ $f = *.* ]] && continue; 
     echo $f ;                     # do something useful here
 done

С find:

find -maxdepth 1 -name "???????" ! -name "*.*"

Хотя, поскольку вы просили об этом без глобусов или находили и использовали слово «профессор», они, возможно, ищут для ls | grep .... Но см. Также пару причин, чтобы не использовать ls для этого.

0
ответ дан 21 April 2017 в 00:42

Вот своего рода решение с подстановочными знаками оболочки (точно 7 символов, которые не являются .)

ls [!.][!.][!.][!.][!.][!.][!.]

, И вот решение с find использование regex отрицание (не литеральное . = [^\.]) и определение, сколько символов {7}

find -maxdepth 1 -regextype posix-extended -regex '\./[^.]{7}'

Не, что Вы попросили, но я сомневаюсь, что оно может быть сделано без некоторых подстановочных знаков или regex.

0
ответ дан 21 April 2017 в 10:42
  • 1
    " Выберите новый SSD в установщике и скажите установщику использовать " полный disk"." я просто разжег свой Живой USB 18.04.2 на компьютере с двумя дисками. Установщик не дает Вам опцию выбрать второй диск для стандартной установки. Единственный способ выбрать второй диск состоит в том, чтобы выбрать " Что-то Else". – user68186 1 April 2019 в 18:02

С расширенными шариками в zsh:

% ls
1234567  1234567.txt  abcdefg  abcd.efg  bar.12  big.tst  dog.cat  tst.new

затем

% setopt extended_glob
% ls (?~.)(#c7)
1234567  abcdefg
  • ?~. любой символ кроме .
  • (#c7) globbing отмечает эквивалентный квантору регулярного выражения {7}

, См. zsh: 14 Расширений

0
ответ дан 21 April 2017 в 10:42
  • 1
    Вывод nvidia, потому что существует только один GPU. Я заменил Radeon GPU Nvidia. Проблемой является точно то же во всех плеерах. Нет, изображение не teared, не то, чтобы видимо. Переход между кадрами не является гладким. It' s как то, когда система вне памяти, но у меня есть RAM на 64 ГБ. – Googlebot 5 April 2019 в 21:32

Другие вопросы по тегам:

Похожие вопросы: