Você pode usar a seguinte função Bash. Copie-o para o seu ~/.bashrc
e forneça-o como . ~/.bashrc
de um terminal.
cngstr(){
echo 'xclip -o' | sed -e "s#$1#$2#g" | xclip
}
Uso
- Realce qualquer texto selecionando-o com o mouse. Como de costume, o texto selecionado pode ser colado usando o clique do meio do mouse.
-
Executar no terminal:
$ cngstr "string" "replacement"
-
Em seguida, quando você colar usando o clique do meio do mouse, a palavra "string" na sua seleção será substituída por "replacement".
Exemplo
Diga que sua seleção é "hello world!" Em seguida você corre no terminal,
cngstr world potato
Use ""
para uma string que consiste em mais de uma palavra . Em seguida, quando você colar usando o clipe do meio do mouse, "oi batata!" vai aparecer. Veja as capturas de tela.
Comofunciona
xclip-o
imprimeaseleçãoparaasaídapadrãoqueestásendocanalizadaparased
aqui.- Próximo
sed
estásubstituindoassequênciasquerecebementradadousuário. - Finalmente,oconteúdomodificadoestásendopassadopara
xclip
,queocolocanaseleção principal e fica disponível para colar por um clique do meio do mouse.
Eu acho que xclip
vem com a distribuição padrão do Ubuntu. Caso contrário, instale-o em apt-get
:
sudo apt-get install xclip
Informações extras
Disponibilize o conteúdo modificado para a área de transferência
Se você quiser que o conteúdo modificado também esteja disponível para a área de transferência para que Ctrl + V também funcione, adicione a seguinte linha no script acima.
echo 'xclip -o' | xclip -selection c
A linha acima irá passar o conteúdo da seleção principal para a área de transferência. A função modificada será semelhante a:
cngstr(){
echo 'xclip -o' | sed -e "s#$1#$2#g" | xclip
echo 'xclip -o' | xclip -selection c
}
Uma função Bash que pode modificar o conteúdo da área de transferência (isto é, copiada usando Ctrl + C ou do menu do botão direito) e Disponibilize a string modificada para a seleção principal e para a área de transferência.
cngstr1(){
echo 'xclip -o -selection c' | sed -e "s#$1#$2#g" | xclip
echo 'xclip -o' | xclip -selection c
}
xclip -o
imprime o conteúdo da seleção principal por padrão. Use -selection c
para imprimir o conteúdo da área de transferência. Consulte man xclip
para saber mais.
Você pode combinar essas duas funções em um script usando um switch case,
#!/bin/sh
string="$2"
replacement="$3"
cngstr(){
echo 'xclip -o' | sed -e "s#$1#$2#g" | xclip
echo 'xclip -o' | xclip -selection c
}
cngstr1(){
echo 'xclip -o -selection c' | sed -e "s#$1#$2#g" | xclip
echo 'xclip -o' | xclip -selection c
}
if [ $# -lt 2 ]
then
echo "Usage : $0 [c|p] \"string\" \"replacement\" "
exit
fi
case "$1" in
c) cngstr1 "$string" "$replacement"
;;
p) cngstr "$string" "$replacement"
;;
*) echo "Usage : $0 [c|p] \"string\" \"replacement\" "
;;
esac
Uso
./script.sh [c|p] "string" "replacement"
-
Use a opção
c
para alterar o conteúdo copiado usando a área de transferência, isto é, o conteúdo copiado usando Ctrl + C ou do menu do botão direito. -
Use a opção
p
para alterar o conteúdo copiado usando a seleção principal.