过滤剪贴板内容而不使用中间文件


11

我正在尝试修改剪贴板中的文本,删除其中包含某些字符串的某些行,然后获取输出以进行进一步的操作(我更喜欢仅在需要时应对剪贴板)。我在想这样的事情:

cat > swapfile
##Paste all
grep -v string swapfile
## Read all
rm swapfile

我试图阻止文件创建以及在shell stdin / out本身中执行所有操作。我尝试使用管道,重定向,来自输入的grep / sed,但没有一个导致没有不想要的模式的情况下打印输入。

Answers:


13
xsel -o -p  | grep -v string

上面使用xsel实用程序从剪贴板捕获并将当前的主要选择发送到stdout。然后,您可以根据需要使用grep(或sed或awk)修改输出。

如果您不希望使用主选择,请将“ -p”替换为“ -s”作为辅助选择,或者将“ -c”替换为剪贴板选择。

在debian或类似发行版上,您可以使用获得xsel apt-get install xsel

上面将其输出发送到stdout。如果要将输出直接捕获到选择中,请使用:

xsel -o -p  | grep -v string | xsel -i -s

选项“ -i”告诉xsel从stdin获取输入并将其保存到选择中。“ -s”再次指定第二选择。


我一直在用这个。它应该运作良好,只需确保您的副本不是“太大”,否则您可能会得到意想不到的输出。不过,这对于您通常复制和粘贴的所有内容都应该可以。
coteyr

不是
macOS
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.