Estou usando sed
há algum tempo, mas aqui está uma peculiaridade com a qual me deparo, que não consigo resolver.
Deixe-me explicar meu problema com o caso real.
Cena # 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
No primeiro comando, canalizo a printf
saída para, xclip
para que seja copiada 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 ls
comando copiado não será executado automaticamente.
No segundo, há uma nova linha no final, portanto, 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 colo no terminal, o comando é executado automaticamente.
Eu também tentei remover o caractere de retorno de carro \r
. Mas nada. Parece que estou perdendo algo muito crucial / básico aqui.
generate-text | xclip
caso. Esta resposta remove apenas a última nova linha.