我有一个文件,我需要将其内容复制到另一个文件或应用程序而不是打开它,选择所有文本然后复制和粘贴我想知道我是否可以有效 cat
文件内容进入剪贴板。这可能吗?
一个Windows程序会很好,但适用于Linux的东西也很有用。我不使用Mac,但它可能对其他人有用。如果可以在命令行上完成,则可以获得奖励积分。
我有一个文件,我需要将其内容复制到另一个文件或应用程序而不是打开它,选择所有文本然后复制和粘贴我想知道我是否可以有效 cat
文件内容进入剪贴板。这可能吗?
一个Windows程序会很好,但适用于Linux的东西也很有用。我不使用Mac,但它可能对其他人有用。如果可以在命令行上完成,则可以获得奖励积分。
Answers:
既然你没有问过Macs: cat file | pbcopy
(同样地 pbpaste
) 对于那些。
在Linux中,您可以使用 xsel
模仿 pbcopy
和 pbpaste
:
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
在Linux和可能的其他支持的系统上 xclip
:
xclip -i -selection c file_to_copy_to_clipboard.txt
我看到@JustinSmith也提到了 xclip
但是错过了一个例子,所以不得不自己查一下。
另一个有用的方法:将剪贴板粘贴到文件中。
xclip -o -selection c > file_to_paste_to.txt
使用此程序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.
抱歉。
使用命令“type”作为windows中“cat”的等效项,将文本格式的文件内容传输到stdout(标准输出),这就是您正在使用的终端/提示模拟器(Windows中的CMD)。 所以你可以将命令组合成这样的东西:
type myFile.txt > clip
现在myFile.txt的内容被转移到clipBoard缓冲区(我认为它只是一个缓冲区,因为它不是linux)。 它也是一个全局值,因此在OS范围内保持一个值。 这就是“复制”功能,现在用于“粘贴”:
您想要将现有文件附加到CLIP的值,就像通常的东西一样:
type clip>> target.txt(或您的目标文件 - 将添加数据而不删除该目标文件中的现有文件)
或者,您想要添加/创建一个包含CLIP值的新文件,如:
type clip> target.txt(或您的目标文件 - 将添加数据或OVERWRITE意味着删除该目标文件中的现有文件)