Обычно, я делаю все свои задачи обработки изображения с convert
от ImageMagic, но я не могу заставить это играть по правилам с svg файлами. Можно, однако, использовать inkscape
самостоятельно из командной строки:
for i in *bmp; do inkscape -f "$i" -l "$i.svg"; done
Это создаст названные файлы foo.bmp.svg
. Для разбираний в именах попробуйте это:
for i in *bmp; do inkscape -f "$i" -l "${i%.bmp}.svg"; done
Проблема с этим подходом состоит в том, что, по крайней мере, в моей системе, он открывается раздражающее графическое диалоговое окно, спрашивающее, хочу ли я связать или встроить изображение:
Так, все еще необходимо нажать "OK" вручную, но это еще намного намного быстрее, чем выполнение его файл файлом.
Выходные изображения идентичны насколько я могу сказать:
Теоретически, оба convert
и rsvg-convert
должен смочь сделать это, но я не мог заставить это работать хорошо над моими изображениями через несколько минут, я потратил попытку. Их оба стоит изучить, тем не менее.
Я не уверен, какая версия GREP
вы используете, но если я читаю Человек страницы GREP
правильно, затем сканирование будет остановлено после первого успешного совпадения. Это то, что вы хотите? То, что я понял от вашего вопроса, было то, что вы хотели «открыть все файлы».
Если вы не возражаете, используете VIM
или GVIM
, затем вы можете использовать это:
$ grep -n mystring *.ext > /tmp/mystring.list
$ vim -q /tmp/mystring.list
(я никогда не пытался объединить эти две команды с Vim
не читает QuickFix
/ Errorfile
из STDIN
)
VIM откроет первый файл в / TMP / MyString. Список
и поместите курсор прямо в линию, где был найден MyString
. Вы можете перейти к следующему экземпляру, используя : CN
и предыдущий экземпляр с использованием : CP
.
Если вы не являетесь VIM
, и, поскольку вы сказали, что связанный вопрос не помог вам много, то Найти ... -Print0
должен помочь - как уже предложено Отказ
Если у вас есть пробелы в именах файлов, вам нужно использовать Print0
опция для файла, позже -0
для xargs
И, наконец, -I {}
для второго Xargs
.
find . -iname "*.maxpat" -print0 | xargs -0 grep -l "mystring" | xargs -I '{}' open '{}'
Испытано с Emacs
как Open
команда .
-EXEC
принимает состояние выхода команды, которую вы помещаете в нее и логично используете его в Найти
Итак, просто что-то простое, как это должно работать
find . -iname "*.ext" -exec grep -q "mystring" {} \; -exec open {} \;
Использование PWD
находит:
find `pwd` -iname *.maxpat | xargs grep -l "mystring" | xargs open