Как я могу загрузить содержимое файла в буфер обмена?


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
Вим


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» в окнах, чтобы передать содержимое файлов в текстовом формате в стандартный вывод (стандартный вывод) для этого эмулятора терминала / приглашения, который вы используете (CMD в окнах). Таким образом, вы можете объединить команды в нечто вроде этого:

type myFile.txt > clip 

теперь содержимое myFile.txt передается в буфер clipBoard (я думаю, что это просто буфер, так как это не linux). Это также глобальное значение, поэтому одно значение хранится за раз во всей ОС. Так что это для функции «копировать», теперь для «вставить»:

  • Либо вы хотите добавить к существующему файлу значения CLIP, как обычно:

    введите clip >> target.txt (или ваш целевой файл - добавит данные, не удаляя существующий внутри этого целевого файла)

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

    введите 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.