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

У меня есть файлы, где мне нужно скопировать их содержимое в другой файл или в приложение, и вместо того, чтобы открыть его, выберите весь текст, потом копировать и вставлять я хотел бы знать, если я могу эффективно cat содержимое файла в буфер обмена. Такое возможно?

программа для Windows была бы хороша, но что-то, что работает на Linux, тоже было бы полезно. Я не использую Mac, но это может быть полезно для других. Бонусные очки, если это можно сделать в командной строке.

12
задан Jonathon Watney
12.01.2023 4:33 Количество просмотров материала 2460
Распечатать страницу

6 ответов

поскольку вы не спрашивали о Mac:cat file | pbcopy (а также pbpaste) для тех, кто.

61
отвечен Arjan 2023-01-13 12:21

xclip (вероятно, доступно в репозиториях вашей системы Linux) будет работать для любой системы X11, включая большинство версий Linux или даже X, запускаемых под windows или Mac OSX.

пример использования: xclip -sel clip < ~/.ssh/id_rsa.pub

48
отвечен Justin Smith 2023-01-13 14:38

в Linux можно использовать xsel передразнить pbcopy и pbpaste:

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

источник: где Уолден? "pbcopy и pbpaste для Linux

33
отвечен pmac72 2023-01-13 16:55

на Linux и возможных других системах, которые поддерживают xclip:

xclip -i -selection c file_to_copy_to_clipboard.txt

Я видел, что @JustinSmith также упомянул xclip но не хватало примера, поэтому пришлось искать самому.

еще один полезный: вставьте буфер обмена в файл.

xclip -o -selection c > file_to_paste_to.txt

Source

14
отвечен Sam Stoelinga 2023-01-13 19:12

используйте эту программу 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
отвечен JanSmrz 2023-01-13 21:29

используйте команду " type "в качестве эквивалента" cat " в windows, чтобы передать содержимое файлов в текстовом формате в stdout (стандартный вывод), поскольку это эмулятор терминала/приглашения, который вы используете (CMD в windows). Таким образом, вы можете объединить команды в нечто вроде этого :

type myFile.txt > clip 

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

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

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

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

    тип зажима > цель.txt (или ваш целевой файл-добавит данные или Перезапись означает удаление существующего внутри этого целевого файла)

0
отвечен Hichem Al Abbessi 2023-01-13 23:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх