Jak mogę załadować zawartość pliku do schowka?

81

Mam pliki, w których muszę skopiować ich zawartość do innego pliku lub do aplikacji i zamiast ich otwierać, zaznacz cały tekst, a następnie skopiuj i wklej. Chciałbym wiedzieć, czy mogę skutecznie catzawrzeć zawartość pliku do schowka. czy to możliwe?

Program Windows byłby w porządku, ale coś, co działa na Linuksie, też byłoby przydatne. Nie używam komputera Mac, ale może być przydatny dla innych. Punkty bonusowe, jeśli można to zrobić w wierszu poleceń.

Jonathon Watney
źródło
1
Aha, wiedziałem, że wcześniej zostało to zadane, dla systemu Windows: „Jak potokować tekst z wiersza polecenia do schowka” na superuser.com/questions/97762/... Może więc pozostaw to otwarte dla Linuksa?
Arjan
1
Przedmieście. Wygląda na to, że mogę do tego użyć clip.exe. Nadal chciałbym wersji bez wiersza poleceń. Może poprzez menu kontekstowe Eksploratora Windows?
Jonathon Watney

Odpowiedzi:

62

Ponieważ nie pytałeś o komputery Mac: cat file | pbcopy(i podobnie pbpaste) dla nich.

Arjan
źródło
Cerować. Nie używam komputera Mac. Zachowam do wglądu w przyszłości. ;)
Jonathon Watney
działa również na Macu;)
HMagdy
51

xclip (prawdopodobnie dostępny w repozytoriach systemu Linux) będzie działał dla każdego systemu X11, w tym dla większości wersji Linuksa, a nawet X działa pod Windows lub Mac OSX.

Przykładowe użycie: xclip -sel clip < ~/.ssh/id_rsa.pub

Justin Smith
źródło
23
Przykładowe użycie:xclip -sel clip < ~/.ssh/id_rsa.pub
wim
13

W systemie Linux i ewentualnie innych systemach obsługujących xclip:

xclip -i -selection c file_to_copy_to_clipboard.txt

Widziałem też @JustinSmith, xclipale nie znalazłem żadnego przykładu, więc sam musiałem to sprawdzić.

Kolejny użyteczny: wklej schowek do pliku.

xclip -o -selection c > file_to_paste_to.txt

Źródło

Sam Stoelinga
źródło
2

użyj polecenia „typ” jako odpowiednika „cat” w systemie Windows, aby potokować zawartość plików w formacie tekstowym do standardowego wyjścia (standardowe wyjście), ponieważ jest to emulator terminala / monitu, którego używasz (CMD w systemie Windows). Możesz więc połączyć polecenia w coś takiego:

type myFile.txt > clip 

teraz zawartość pliku myFile.txt jest przenoszona do bufora clipBoard (myślę, że to tylko bufor, ponieważ nie jest linuksem). Jest to również wartość globalna, więc jedna wartość jest utrzymywana jednocześnie dla całego systemu operacyjnego. To dotyczy funkcji „kopiuj”, teraz „wklej”:

  • Albo chcesz dołączyć do istniejącego pliku wartości CLIP jak zwykle:

    wpisz clip >> target.txt (lub plik docelowy - doda dane bez usuwania istniejącego w tym pliku docelowym)

  • Lub chcesz dodać / utworzyć nowy plik z wartościami CLIP, takimi jak:

    wpisz clip> target.txt (lub plik docelowy - doda dane lub OVERWRITE oznacza usunięcie istniejącego pliku w tym pliku docelowym)

Hichem Al Abbessi
źródło
1

Użyj tego programu f2clip. Uruchom go z wiersza poleceń. Kopiuje zawartość pliku do schowka. Używam go do kopiowania plików tekstowych do przeglądarki internetowej w celu dalszego przetwarzania. Pobierz go z http://smrz.xf.cz/f2clip.exe lub napisz własny z tego źródła (to jest brzydkie):

 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.

Przepraszam.

JanSmrz
źródło
1
+1. Doceniam ten wysiłek, chociaż uważam, że xclip jest lepszym rozwiązaniem.
0xc0de,