2017-02-09 16 views
1

Мне нужно найти все mime-типы всех файлов в папке. Я написал небольшой фрагмент, подобный этому.Извлечь только часть текста перед разделителем '/'?

for i in $(find /home/someFolder -type f);do file -b $i --mime-type;done 

Это возвращает следующий выход.

text/html 
application/msword 
application/msword 
text/html 
text/html 
text/html 
application/msword 
application/vnd.ms-excel 

Но я могу получить извлеченную информацию из этого выхода, как только html или msword или png.

html 
msword 
msword 

Существует ли какая-либо библиотека, которые я могу использовать, чтобы узнать подробную информацию о файле, который должен включать в себя тип MIME, размер, строки внутри файла и любых других поведенческих предложений information.Any помогут.

ответ

1

ли это:

find . -type f -print0 | xargs -0L1 file -b --mime-type | cut -d/ -f2 

Гораздо быстрее и безопаснее, чем ваш for подход. (Очевидно, замените . на путь, с которого вы хотите начать поиск.)

+0

Поскольку имена файлов не сохраняются во время этого процесса, возможно, добавление последней стадии трубы с помощью 'sort -u', чтобы избежать дубликатов, имеет смысл ? – Fred

+0

Да, 'sort -u' будет иметь смысл. Вы можете даже сортировать | uniq -c', чтобы получить подсчеты различных типов ... – Dario