Если у Вас есть запасной символ, можно сделать предложение Uwe.
Если действительно только необходимо заменить отдельный символ, и Вам не обязательно нужно sed
, использовать tr
как предложено XTian.
Если Вам не нужно sed
и Вы могли бы заменить более длинные последовательности, не нуждаясь в запасном символе, Вы могли бы пойти с чем-то как этот:
perl -le '%ex=(a=>"b",b=>"a"); $keys=join("|",keys(%ex)); $text="abba"; $text=~s/$keys/$ex{$&}/eg; print $text'
или
ruby -e 'ex={"a"=>"b","b"=>"a"}; puts "abba".gsub(/(#{ex.keys.join("|")})/,ex)'
В GPG V2 добавляли вариант - Batch
. До этого в V1 есть опция - No-Use-Agent
, который вам может понадобиться, если вы занимаетесь сценарией операций.
Это сказано, я не понимаю, как вы входите в ключ во время дешифрования. ...? Вы используете - NO-TTY
(который предотвращает ваш GPG в чем-нибудь), но, по крайней мере, в соответствии с тем, что вы поделились с нами, вы не даете GPG парольную фразу. Это проблема.