以下の内容はhttps://anton0825.hatenablog.com/entry/20140423/1405995106より取得しました。


awkで切り出した文字列を他のコマンドに渡す

pecoを使い出してから快適ターミナル生活を楽しんでおります。
ファイル選択をpecoでやりたくて以下のaliasを定義してみた。以下に出てくる\はすべてバックスラッシュが正しい。(はてなにバックスラッシュ出せない。。情弱ですいません)

alias -g F='`ls | peco | awk '\''{ print $9 }'\''`'

これを定義するときに、awkでファイル名だけ切り出しているはずなのにlsの行全体が他のコマンドに渡されてしまい困った。最初に書いた定義は↓。

alias -g F='`ls | peco | awk "{ print \$9 }"`'

どうもawkの引数はシングルクォートでないとおかしくなるっぽい。awkだけで使う場合はダブルクォートでも中の文字をエスケープすれば大丈夫なのに。。
以下のようにシングルクォートをエスケープしてもだめだった。

alias -g F='`ls | peco | awk \'{ print \$9 }\'`'

シングルクォートの中でシングルクォートをエスケープする場合、以下のように書かないといけないらしい。\の後はシングルクォートを二つ並べて書いている。

alias -g F='`ls | peco | awk '\''{ print $9 }'\''`'

これでopen Fとかしたらpecoでファイルを選択して開けるようになった。快適!




以上の内容はhttps://anton0825.hatenablog.com/entry/20140423/1405995106より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14