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