Eu tenho usado sed
há algum tempo, mas aqui está uma peculiaridade que eu não consegui resolver.
Deixe-me explicar meu problema com o caso atual.
Cena 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
No primeiro comando, cano printf
output para xclip
para que seja copiado para a área de transferência. Agora, printf
, ao contrário de echo
, não insere uma nova linha no final por padrão. Portanto, se eu colar esse conteúdo no terminal, o comando ls
que é copiado não será executado automaticamente.
No segundo, há uma nova linha no final, então colar o conteúdo da área de transferência também resulta na execução do comando na área de transferência.
Isso é indesejável para mim. Então, eu queria remover a nova linha usando sed
, mas ela falhou, conforme explicado na cena abaixo.
Cena 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
O conteúdo da área de transferência ainda contém nova linha. Quando eu colo no terminal, o comando é executado automaticamente.
Eu também tentei remover o caractere de retorno de carro \r
. Mas nada. Parece que estou sentindo falta de algo muito crucial / básico aqui.