Я не думаю, что это возможно (но хотелось бы оказаться неправым). Однако вы можете использовать промежуточную переменную. bash -c
, запускаемый -exec
, является просто экземпляром bash, как и любой другой:
$ find . -type f
./foobarbaz
$ find . -type f -exec bash -c 'v=${0#./foo}; echo ${v%baz}' {} \;
bar
Так что я не вижу причин, почему это не сработает (если бы я понял, что вы стараемся делать правильно):
find ./Source -name '*.src' \
-exec bash -c 'v=${0%.src}; \
myconvert -i "{}" -o "./Dest/${v#./Source/}.dst"' {} \;
Быстрый ввод:
dpkg -l | grep -v '^ii'
Здесь перечислены все пакеты, которые хотя бы мало известны системе, но установлены не полностью.
Если вам нужен анализируемый вывод, используйте dpkg-query
с настраиваемым форматом. Отрегулируйте фильтр по своему желанию.
dpkg-query -f '${status} ${package}\n' -W | awk '$3 != "installed" {print $4}'
dpkg-query -f '${status} ${package}\n' -W | awk '$3 == "half-configured" {print $4}'
dpkg --audit
-C, --audit [package-name...]
Performs database sanity and consistency checks for package-name
or all packages if omitted (per package checks since dpkg 1.17.10).
For example, searches for packages that have been installed only
partially on your system or that have missing, wrong or obsolete
control data or files. dpkg will suggest what to do with them to
get them fixed.
источник: man dpkg