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
に渡します。
Bashの コマンド置換$()
を使用します。一致する部分のみを選択するには、grepで-o
も必要です。
cd "$(pip install Django | grep -o '/usr.*')"
この場合は逃げますが、コマンド置換を常に二重引用符で囲む必要がありますので、シェルは空白に Word splitting を実行しないことに注意してください(デフォルトではスペース、タブ、改行は依存しますIFS
の場合はbash
変数。