¿Cómo puedo cargar el contenido de un archivo en el portapapeles?

81

Tengo un archivo donde necesito copiar su contenido en otro archivo o en una aplicación y, en lugar de abrirlo, seleccionar todo el texto y luego copiar y pegar Me gustaría saber si puedo efectivamente catel contenido del archivo en el portapapeles. es posible?

Un programa de Windows estaría bien, pero algo que funciona en Linux también sería útil. No uso una Mac, pero podría ser útil para otros. Puntos de bonificación si esto se puede hacer en la línea de comando.

Jonathon Watney
fuente
1
Ajá, sabía que se le había preguntado antes, para Windows: "Cómo canalizar texto desde la línea de comandos al portapapeles" en superuser.com/questions/97762/... ¿ Quizás deje esto abierto para Linux entonces?
Arjan
1
Suburbio. Parece que puedo usar clip.exe para esto. Sin embargo, todavía me gustaría una versión sin línea de comando. Tal vez a través del menú contextual del Explorador de Windows?
Jonathon Watney

Respuestas:

62

Ya que no preguntaste sobre Macs: cat file | pbcopy(y del mismo modo pbpaste) por esos.

Arjan
fuente
Maldito. Yo no uso una Mac. Sin embargo, se mantendrá para futuras referencias. ;)
Jonathon Watney
también funciona en Mac;)
HMagdy
51

xclip (probablemente disponible en los repositorios de su sistema Linux) funcionará para cualquier sistema X11, incluidas la mayoría de las versiones de Linux, o incluso X que se ejecuta en Windows o Mac OSX.

Ejemplo de uso: xclip -sel clip < ~/.ssh/id_rsa.pub

Justin Smith
fuente
23
Ejemplo de uso:xclip -sel clip < ~/.ssh/id_rsa.pub
wim
13

En Linux y otros posibles sistemas que admiten xclip:

xclip -i -selection c file_to_copy_to_clipboard.txt

Vi que @JustinSmith también mencionó xclippero me faltaba un ejemplo, así que tuve que buscarlo yo mismo.

Otro útil: pegue su portapapeles en un archivo.

xclip -o -selection c > file_to_paste_to.txt

Fuente

Sam Stoelinga
fuente
2

use el comando "tipo" como equivalente a "cat" en Windows para canalizar el contenido de los archivos en formato de texto en stdout (salida estándar), ya que ese es el emulador Terminal / prompt que está utilizando (CMD en Windows). Entonces puedes combinar los comandos en algo como esto:

type myFile.txt > clip 

ahora el contenido de myFile.txt se transfiere al búfer de clipBoard (creo que es solo un búfer ya que no es Linux). También es un valor global, por lo que un valor se mantiene a la vez en todo el sistema operativo. Eso es para la función "copiar", ahora para "pegar":

  • O bien, desea agregar a un archivo existente los valores del CLIP como las cosas habituales:

    escriba clip >> target.txt (o su archivo de destino; agregará datos sin eliminar el existente dentro de ese archivo de destino)

  • O bien, desea agregar / crear un nuevo archivo con los valores del CLIP como:

    escriba clip> target.txt (o su archivo de destino; agregará datos o SOBRESCRIBIR significa eliminar el existente dentro de ese archivo de destino)

Hichem Al Abbessi
fuente
1

Utiliza este programa f2clip. Ejecútelo desde la línea de comando. Copia el contenido del archivo en el portapapeles. Lo uso para copiar archivos de texto en el navegador web para su posterior procesamiento. Descárguelo de http://smrz.xf.cz/f2clip.exe o escriba el suyo desde esta fuente (es feo):

 program f2clip;

 {$APPTYPE CONSOLE}

 uses
SysUtils,
clipbrd;

var i,r:integer;
    s:string;
 f:file;
 buf:array[0..1024*1024-1] of byte;

 data:string;
 d:pointer;
 begin
 try

 { TODO -oUser -cConsole Main : Insert code here }
    if (paramcount=0) then begin
    writeln('parameters: f2clip filename.txt');
end else begin
    write('parameter count: ');
  writeln(paramcount);  
    for i:=1 to paramcount do begin
    s:=paramstr(i);
    writeln('file: ',s);

    assignfile(f,s);
    reset(f,1);
    BlockRead(f,buf,1024*1024,r);
    writeln('size: ',r);
    buf[r]:=0;

    d:=@(buf[0]);
    data:=PAnsiChar(d);
Clipboard.AsText := data;
    close(f);
  end;

  end;

 except
   on E:Exception do
     Writeln(E.Classname, ': ', E.Message);
 end;
end.

Lo siento.

JanSmrz
fuente
1
+1. Aprecio este esfuerzo, aunque creo que xclip es una mejor solución.
0xc0de