LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

for i in *; do file -b "$i"|grep -q 'text' && echo $i; done > file

Если с подкаталогами, то for i in **/* (не уверен, что баш так умеет, но zsh — вполне; игнорируются скрытые файлы, которые for i in **/.*) или find . -type f | while read i; вместо for. В любом случае всё ломается на определённых именах файлов, но мне лень писать защиту от этого.

Что делать со случаями, когда file сбоит (он изредка может детектировать юникодный текст как DOS COM file) — не представляю. Если в задании имелось в виду расширение — тогда проще.

Как-то так, наверно.

Исправление x3al, :

for i in *; do file "$i"|grep -q 'text' && echo $i; done > file

Если с подкаталогами, то for i in **/* (не уверен, что баш так умеет, но zsh — вполне; игнорируются скрытые файлы, которые for i in **/.*) или find . -type f | while read i; вместо for. В любом случае всё ломается на определённых именах файлов, но мне лень писать защиту от этого.

Что делать со случаями, когда file сбоит (он изредка может детектировать юникодный текст как DOS COM file) — не представляю. Если в задании имелось в виду расширение — тогда проще.

Как-то так, наверно.

Исходная версия x3al, :

for i in *; do file «$i»|grep -q 'text' && echo $i; done > file

Если с подкаталогами, то for i in **/* (не уверен, что баш так умеет, но zsh — вполне; игнорируются скрытые файлы, которые for i in **/.*) или find . -type f | while read i; вместо for. В любом случае всё ломается на определённых именах файлов, но мне лень писать защиту от этого.

Что делать со случаями, когда file сбоит (он изредка может детектировать юникодный текст как DOS COM file) — не представляю. Если в задании имелось в виду расширение — тогда проще.

Как-то так, наверно.