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
が、問題が 1 つあります。上記のリストから引数を選択するにはどうすればよいですか。3 番目の場所を選択するとします。それを実行する方法はありますか。
フォローしようと思ったのですが、うまくいきませんでした。
whereis python | xargs $3 xdg-open
答え1
xargs に渡す前に出力をフィルタリングするだけです:
whereis python | awk '{print $3}' | xargs xdg-open
このawk
コマンドは 3 番目の単語のみを出力するので、 に渡すのはそれだけですxargs
。もちろん、xargs
引数が 1 つしかない場合は を使用することは無意味です。代わりにこれが必要な場合があります。
xdg-open $(whereis python | awk '{print $3}')
または、単にwhich
これを使用して、初め検索文字列の出現箇所$PATH
:
xdg-open $(which python)
python
では開けないことに注意してくださいxdg-open
。これは無意味です。スクリプト言語であるバイナリは言うまでもなく、バイナリを有効に開くことができるグラフィカル プログラムが存在しないからです。
答え2
君にはできないと思うよxargsで- ただし、シェルを使用して実行することもできます。
whereis python | xargs sh -c 'echo "$3"' sh
しかし、あなたの特定の使用例は実際には意味がありません。バナジウムが指摘した
答え3
xargs の目的は、入力のすべての項目をコマンドに繰り返し渡すことです。入力から「選択」するわけではありません。その操作を行う場合は、head、tail、grep などの他のツールを使用する必要があります。例:
whereis python | fmt -1 | tail -n +3 | head -1