Поэтому я использую комбинацию find
и grep
для фильтрации списка имен файлов из простого текстового документа.
Вот команда, которую я запускаю:
find /Volumes/Documents\ -\ Part\ 1/July 2009 -type f | grep -vf files.txt
В файлах .txt у меня есть это:
/Volumes/Documents - Part 1/July 2009/vacation.pdf
/Volumes/Documents - Part 1/July 2009/pie time!.jpg
/Volumes/Documents - Part 1/July 2009/Coding/Unix/sample.sh
/Volumes/Documents - Part 1/July 2009/trip-to-spain.pages
Я хочу, чтобы он выводил любые несоответствующие строки, но вместо этого я получаю это:
grep: invalid character range
Какова причина этого? В файле files.txt есть намного больше, я просто опустил его, потому что он будет слишком длинным. У меня там тоже есть несколько символов Юникода. Может ли это быть причиной каких-либо проблем?
Mac OS X Yosemite, bash 3.2.57(1) -релиз, grep (BSD grep) 2.5.1-FreeBSD