正規表現を使用してgrepを操作することはできません

正規表現を使用してgrepを操作することはできません
ssh1% cat temp

sarah

saab

marrrrrrrrra

marrrrrrrtha

ssh1% grep ar*a temp

grep: No match.

これは出力ではないはずですか?

sarah saab marrrrrra

Windows 10でputtyとnxclientを使用しようとしています。

ベストアンサー1

を使用しています。をcsh確認し*、次に展開しようとします。シェルボールそして失敗しました。つまり、cshここで言うのは「不一致」ではなく「不一致」ですgrep。同じではないByrne ファミリーシェルcsh拡張不可能なグローバルパターンはコマンドに渡されないので、これを参照cshしてくださいgrep

そうしたくないので、ここでは一重引用符を使用することをお勧めします。入れる変数を文字列に入れます。

% grep 'ar*a' temp
sarah
saab
marrrrrrrrra

この場合、パターンに二重引用符が含まれていないため、二重引用符も機能します$が、とにかくここでは一重引用符を使用することをお勧めします。引用符を反交換的に使用できる言語(シェル、Perlなど)では、どの引用符を使用するかを慎重に検討することが開発する価値がある習慣です。ここでは文字列補間は必要ありませんので、これを許可する引用スタイルを使用しないようにします。

しかし、BourneシェルファミリでもREモードを呼び出す必要があります。 Mike Wagnerが上記のコメントで示唆したように、正規表現とグローバルパターンのため同じ特殊文字をたくさん使用してください。、時にはREパターンを書くこともできます発生するまた、特定のファイルと一致するため、誤ってシェルによって拡張されます。

おすすめ記事