ファイルをgrepして、特定の環境変数(正確に言えば$PWD
)を含むすべての行を取得したいと思います。
もちろん、それを使用してください
cat file | grep '/'$PWD'/'
スラッシュが含まれているため機能しません$PWD
。
私はこれを正しく実行する方法を見つけようとしていますが、奇妙で過度に複雑な解決策を思いつきました。これを行う簡単な方法はありますか?
答え1
一重引用符の代わりに二重引用符を使用してくださいcat
。ウルムチ大学):
grep -F -- "$PWD" file
-F
何も見つからない場合は、検索$PWD
文字列ではなく正規表現として扱われることに注意してくださいfile
。
答え2
スラッシュは特殊文字ではないため、自由に使用できます。
grep "$PWD/" file
後ろに/を追加しても問題は発生しません。しかし、スラッシュはawkとsedの特殊文字です。パターンは//で囲まれています。この場合、以下を使用できます。
awk -v pattern="$PWD/" '$0 ~ pattern' file
awk /pattern/ {action} 構文を使用しないでください。ここで、「〜」は一致演算子で、$ 0は行全体を表します。