web-dev-qa-db-ja.com

grep出力をcdのパスとして使用するには?

grepコマンドの引数としてcd出力をパイプするにはどうすればよいですか?

例えば:

[root@xxx xxx]# pip install Django | grep '/usr.*'  
Requirement already satisfied (use --upgrade to upgrade): Django in   /usr/lib64/python2.7/site-packages

ここで、/usr/lib64/python2.7/site-packagesが強調表示されています。この文字列をcdに渡します。

9
micgeronimo

Bashの コマンド置換$()を使用します。一致する部分のみを選択するには、grepで-oも必要です。

cd "$(pip install Django | grep -o '/usr.*')"

この場合は逃げますが、コマンド置換を常に二重引用符で囲む必要がありますので、シェルは空白に Word splitting を実行しないことに注意してください(デフォルトではスペース、タブ、改行は依存しますIFSの場合はbash変数。

16
heemayl