Як я можу завантажити вміст файлу в буфер обміну?


81

У мене є файли, де мені потрібно скопіювати їх вміст в інший файл або в додаток, а не відкривати його, виберіть весь текст, потім скопіюйте та вставте. Я хотів би знати, чи зможу я ефективно catвміст файлу в буфер обміну. Чи можливо це?

Програма Windows була б чудово, але те, що працює на Linux, теж було б корисно. Я не використовую Mac, але він може бути корисним для інших. Бонусні бали, якщо це можна зробити в командному рядку.


1
Ага, я знав, що його просили раніше для Windows: "Як передавати текст з командного рядка в буфер обміну" на superuser.com/questions/97762/… Можливо, залиште це відкритим для Linux?
Ар'ян

1
Передмістя. Схоже, я можу використовувати для цього clip.exe. Хоча все-таки хотіти версії без командного рядка. Можливо, через контекстне меню Windows Explorer?
Джонатан Уотні

Відповіді:



51

xclip (можливо, доступний у репортажі вашої системи Linux) буде працювати для будь-якої системи X11, включаючи більшість версій Linux, або навіть X, які працюють під Windows або Mac OSX.

Приклад використання: xclip -sel clip < ~/.ssh/id_rsa.pub


23
Приклад використання:xclip -sel clip < ~/.ssh/id_rsa.pub
wim


13

У Linux та інших інших системах, які підтримують xclip:

xclip -i -selection c file_to_copy_to_clipboard.txt

Я бачив @JustinSmith також згадував, xclipале бракував прикладу, тому довелося шукати його сам.

Ще одна корисна: вставте буфер обміну до файлу.

xclip -o -selection c > file_to_paste_to.txt

Джерело


2

використовуйте команду "type" як еквівалент "cat" у Windows, щоб передати вміст файлів у текстовому форматі в stdout (стандартний вихід) для цього є емулятор терміналів / підказок, який ви використовуєте (CMD у windows). Таким чином, ви можете об'єднати команди в щось подібне:

type myFile.txt > clip 

тепер вміст myFile.txt переноситься на буфер clipBoard (я думаю, що це просто буфер, оскільки це не Linux). Це також глобальне значення, тому одне значення зберігається за один раз у широкій ОС. Отже, це для функції "копіювати", тепер для "вставити":

  • Або ви хочете додати до наявного файлу значення CLIP, як звичайні речі:

    введіть кліп >> target.txt (або ваш цільовий файл - додасть дані, не видаляючи існуючого всередині цього цільового файлу)

  • Або ви хочете додати / створити новий файл зі значеннями CLIP, наприклад:

    введіть кліп> target.txt (або ваш цільовий файл - додасть дані або OVERWRITE означає видалення наявного в цільовому файлі)


1

Використовуйте цю програму f2clip. Запустіть його з командного рядка. Він копіює вміст файлу в буфер обміну. Я використовую його для копіювання текстових файлів у веб-браузер для подальшої обробки. Завантажте його з http://smrz.xf.cz/f2clip.exe або напишіть своє з цього джерела (це некрасиво):

 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.

Вибачте.


1
+1. Я ціную ці зусилля, хоча думаю, що xclip є кращим рішенням.
0xc0de
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.