UNIX sort:对剪贴板中的内容排序

3phpmpom  于 2022-11-04  发布在  Unix
关注(0)|答案(4)|浏览(140)

前几天,我看到我的一个同事用sort对他从一个文本文件中复制的一些行进行排序。
我自己也试着复制它,但我似乎找不到方法。
具体要求如下:

  • 从命令行使用sort,再加上配置输入所需添加的任何内容
  • 从剪贴板粘贴要排序的文本
  • 在控制台中获取排序结果
w3nuxt5m

w3nuxt5m1#

如果你输入sort -,命令将接受来自stdin的输入,然后你可以将你想要的粘贴到控制台中,并输入CTRL-D对其进行排序。

omjgkv6w

omjgkv6w2#

很简单,只需键入sort(或sort -)在stdin上运行,粘贴您的行,然后按CTRL+D在传输结束时排序。

ovfsdjhp

ovfsdjhp3#

请使用xclip

xclip -o | sort -
eeq64g8w

eeq64g8w4#

我做了这样的事情:

xclip -o | sort > /tmp/xclip_temp; xclip -i < /tmp/xclip_temp;cat /tmp/xclip_temp; rm /tmp/xclip_temp

它可以:

  • 将剪贴板中的排序输入存储在/tmp/xclip_temp文件中;
  • 将排序后的输入从文件放回剪贴板;
  • 在控制台上打印排序后的值;
  • 最后删除临时文件;

我使用;而不是|的原因是因为管道作为一个并行进程工作,所以如果我只使用|,我将在xclip的值仍在被读取时覆盖它。
为了方便起见,您可以在~/.bashrc文件中添加一个函数,如下所示:

sort_xclip()
{ 
   xclip -o | sort > /tmp/xclip_temp; xclip -i < /tmp/xclip_temp; cat /tmp/xclip_temp; rm /tmp/xclip_temp;
}

所以当你想再做一次的时候,你可以直接输入sort_xclip
PS:编辑完~/.bashrc后,运行source ~/.bashrc,终端就会加载你刚创建的函数。

相关问题