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


10

Наприклад, як можна повторити:

ls *.txt

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

Як варіант, чи можна перерахувати конкретно лише ті файли, які не мають розширення?

Відповіді:


8

Щоб відповідати файлам, у яких взагалі немає розширення, ви можете скористатися командою

ls | grep -v '\.'

Для відповідності файлам, що не мають .txtрозширення, можна скористатися командою

ls | grep -v '\.txt'

Це передасть список файлів у поточному каталозі до grep, який видалить усі імена файлів, у яких є .(або .txtдля другої команди).


Дякую! Це відповіло на моє запитання. Крім того, чи можна використовувати той самий інструмент grep для інших команд? Наприклад, з тодосами? (конвертувати закінчення рядків)
— user82212

1
Так, grepможе використовуватися з будь-якою командою. |Символ використовується для передачі виведення з однієї команди в іншу, і grepбуде відповідати лініях , які мають (або не мають) конкретний текст. Але якщо ви хочете змінити текст (крім того, щоб просто надрукувати відповідні рядки), слід поглянути на sedкоманду.
— iBelieve

Щоб знайти лише текстові файли (крім каталогів та двійкових файлів), використовуйте:ls --classify | grep -v '/'.'*'
— chaskes

6

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

Наприклад, ls --ignore="*.txt"ігнорувати файли 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.