web-dev-qa-db-fra.com

Comment puis-je charger le contenu d'un fichier dans le presse-papiers?

J'ai des fichiers dans lesquels j'ai besoin de copier leur contenu dans un autre fichier ou dans une application et plutôt que de l'ouvrir, sélectionner tout le texte puis copier et coller. J'aimerais savoir si je peux effectivement cat le contenu du fichier dans le Presse-papiers . Est-ce possible?

Un programme Windows conviendrait, mais une solution fonctionnant sous Linux serait également utile. Je n'utilise pas de Mac mais cela pourrait être utile à d'autres. Des points bonus si cela peut être fait en ligne de commande.

80
Jonathon Watney

Puisque vous n’avez pas posé de question sur les Mac: cat file | pbcopy (et même pbpaste) pour ceux-là.

62
Arjan

xclip (probablement disponible dans le dépôt de votre système Linux) fonctionnera pour tout système X11, y compris la plupart des versions de Linux, ou même X fonctionnant sous Windows ou Mac OSX.

Exemple d'utilisation: xclip -sel clip < ~/.ssh/id_rsa.pub

51
Justin Smith

Sous Linux, vous pouvez utiliser xsel pour imiter pbcopy et pbpaste:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

Source: Où est Walden? »Pbcopy et pbpaste pour Linux

33
pmac72

Sous Linux et d’autres systèmes possibles prenant en charge xclip:

xclip -i -selection c file_to_copy_to_clipboard.txt

J'ai vu @JustinSmith également mentionné xclip mais il me manquait un exemple, alors j'ai dû le rechercher moi-même.

Un autre utile: coller votre presse-papiers dans un fichier.

xclip -o -selection c > file_to_paste_to.txt

La source

14
Sam Stoelinga

Utilisez ce programme f2clip. Exécutez-le à partir de la ligne de commande. Il copie le contenu du fichier dans le presse-papier. Je l'utilise pour copier des fichiers texte dans un navigateur Web pour un traitement ultérieur. Téléchargez-le à partir de http://smrz.xf.cz/f2clip.exe ou écrivez le vôtre à partir de cette source (c'est moche):

 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.

Pardon.

1
JanSmrz

utilisez la commande "type" comme équivalent à "cat" dans Windows pour diriger le contenu des fichiers au format texte dans stdout (sortie standard), car il s'agit de l'émulateur Terminal/Prompt que vous utilisez (CMD dans Windows). Donc, vous pouvez combiner les commandes dans quelque chose comme ceci:

type myFile.txt > clip 

maintenant le contenu de myFile.txt est transféré dans le tampon clipBoard (je pense que c'est juste un tampon puisqu'il ne s'agit pas de linux). C'est aussi une valeur globale, donc une valeur est détenue à la fois par l'ensemble du système d'exploitation. Donc, c'est pour la fonctionnalité "copier", maintenant pour le "coller":

  • Soit vous voulez ajouter à un fichier existant les valeurs du CLIP comme d'habitude:

    tapez clip >> target.txt (ou votre fichier cible - ajoutera des données sans supprimer celles existantes dans ce fichier cible)

  • Ou, vous voulez ajouter/créer un nouveau fichier avec les valeurs du CLIP comme:

    tapez clip> target.txt (ou votre fichier cible - ajoutera des données ou OVERWRITE signifie la suppression de l'existant dans ce fichier cible)

0