He estado usando sed
durante bastante tiempo, pero aquí hay una peculiaridad que encontré, que no puedo resolver.
Déjame explicarte mi problema con el caso real.
Escena 1
printf "ls" | xclip -selection clipboard
echo "ls" | xclip -selection clipboard
En el primer comando, canalizo la printf
salida a xclip
para que se copie en el portapapeles. Ahora, a printf
diferencia echo
, no inserta una nueva línea al final de forma predeterminada. Entonces, si pego este contenido en la terminal, el ls
comando que se copia no se ejecuta automáticamente.
En el segundo, hay una nueva línea al final, por lo que al pegar el contenido del portapapeles también se ejecuta el comando en el portapapeles.
Esto no es deseable para mí. Entonces, quería eliminar la nueva línea usando sed
, pero falló, como se explica en la escena a continuación.
Escena # 2
echo "ls" | sed -r 's/\n//g' | xclip -selection clipboard
El contenido en el portapapeles todavía contiene nueva línea. Cuando lo pego en la terminal, el comando se ejecuta automáticamente.
También intenté eliminar el carácter de retorno de carro \r
. Pero nada Parece que me estoy perdiendo algo muy crucial / básico aquí.
generate-text | xclip
caso. Esta respuesta solo elimina la última línea nueva.