如何将文件内容加载到剪贴板?


79

我有一个文件,我需要将其内容复制到另一个文件或应用程序而不是打开它,选择所有文本然后复制和粘贴我想知道我是否可以有效 cat 文件内容进入剪贴板。这可能吗?

一个Windows程序会很好,但适用于Linux的东西也很有用。我不使用Mac,但它可能对其他人有用。如果可以在命令行上完成,则可以获得奖励积分。


1
Aha,我之前已经知道,对于Windows:“如何将文本从命令行传输到剪贴板” superuser.com/questions/97762/... 也许这对Linux开放呢?
Arjan

1
市郊。看起来我可以使用clip.exe。仍然会喜欢非命令行版本。也许通过Windows Explorer上下文菜单?
Jonathon Watney

Answers:



48

XCLIP (可能在您的Linux系统的repos中可用)适用于任何X11系统,包括大多数Linux版本,甚至X在Windows或Mac OSX下运行。

用法示例: xclip -sel clip < ~/.ssh/id_rsa.pub


23
用法示例: xclip -sel clip < ~/.ssh/id_rsa.pub
wim


14

在Linux和可能的其他支持的系统上 xclip

xclip -i -selection c file_to_copy_to_clipboard.txt

我看到@JustinSmith也提到了 xclip 但是错过了一个例子,所以不得不自己查一下。

另一个有用的方法:将剪贴板粘贴到文件中。

xclip -o -selection c > file_to_paste_to.txt

资源


1

使用此程序f2clip。从命令行运行它。它将文件内容复制到剪贴板中。我用它将文本文件复制到Web浏览器中进行进一步处理。 从中下载 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

0

使用命令“type”作为windows中“cat”的等效项,将文本格式的文件内容传输到stdout(标准输出),这就是您正在使用的终端/提示模拟器(Windows中的CMD)。 所以你可以将命令组合成这样的东西:

type myFile.txt > clip 

现在myFile.txt的内容被转移到clipBoard缓冲区(我认为它只是一个缓冲区,因为它不是linux)。 它也是一个全局值,因此在OS范围内保持一个值。 这就是“复制”功能,现在用于“粘贴”:

  • 您想要将现有文件附加到CLIP的值,就像通常的东西一样:

    type clip&gt;&gt; target.txt(或您的目标文件 - 将添加数据而不删除该目标文件中的现有文件)

  • 或者,您想要添加/创建一个包含CLIP值的新文件,如:

    type clip&gt; target.txt(或您的目标文件 - 将添加数据或OVERWRITE意味着删除该目标文件中的现有文件)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.