我想打开安装python的位置。检查我使用的位置。
whereis python | xargs -n 1 echo
输出 :
/usr/bin/python3.8
/usr/bin/python3.8-config
/usr/bin/python
/usr/lib/python2.7
/usr/lib/python3.8
/usr/lib/python3.9
/etc/python3.8
/usr/local/lib/python3.8
/usr/include/python3.8
虽然我可以复制 xdg 的位置,但我不想这样做。我想使用管道运算符并使用 打开位置xdg-open
。但是,有一个问题。如何从上面的列表中选择参数。假设我想选择第 3 个位置。有什么办法吗?
我考虑过效仿,但没有成功。
whereis python | xargs $3 xdg-open
答案1
在将输出传递给 xargs 之前,只需对其进行过滤:
whereis python | awk '{print $3}' | xargs xdg-open
该awk
命令将仅打印第三个单词,因此这就是您要传递给 的全部内容xargs
。当然,xargs
当您只有一个参数时,使用是没有意义的。也许您想要这个?
xdg-open $(whereis python | awk '{print $3}')
或者,只需使用which
将返回第一的在您的搜索字符串中出现的$PATH
:
xdg-open $(which python)
请注意,您无法用 打开python
,xdg-open
这是毫无意义的,因为没有图形程序可以有用地打开二进制文件,更不用说脚本语言的二进制文件了。
答案2
我不认为你能做到在 xargs 中- 但你可以用 shell 来做:
whereis python | xargs sh -c 'echo "$3"' sh
然而你的具体用例并没有真正的意义,因为钒指出
答案3
xargs 的目的是重复地将输入的每项提供给命令。它不会从输入中进行“选择”。如果你想这样做,你应该使用其他工具,如 head、tail、grep。例如:
whereis python | fmt -1 | tail -n +3 | head -1