grepを使用して-Rを含む行を取得する方法

grepを使用して-Rを含む行を取得する方法

grepを使ってファイル内の「-R」を見つける方法は?grep "-R" *.GNU-Rを含む行を取得しようとしましたが、何も返されませんでした。

答え1

努力する:

grep -- -R *.GNU

--オプションの終わりを示す-Rため、オプションではなくパラメータとして扱われます。grep

答え2

多くのGNUツールは、コマンドラインオプションを独自に解析しないようにツール(など)に通知するオプションをサポートしていますrm。このオプションは、コマンドライン入力に二重ダッシュを表示することで便利に使用できます。grepls--

これについての詳細は、以下で読むことができます。GNU CoreUtils FAQ。具体的には、このセクションのタイトルは次のとおりです。11ダッシュで始まるファイルを削除する方法

これにより、-ダッシュ(つまり)で始まるファイルをコマンドライン引数として渡すことができます。

はい

rm ./-stuff
rm /full/path/-stuff
rm -- -stuff

mv ./-stuff differentstuff
mv -- -stuff differentstuff

答え3

最も一般的な方法

grep -- -R *.GNUgrepのいくつかのバリエーションで動作します。--grepにフラグ検索を停止するように指示します。

grep -e -R *.GNUまた動作します。-egrepに検索パターンに従うように指示します。

代替

grep '[-]R' *.GNU

[-]キャラクタークラス。このクラスには文字が1つしかないので、ハイフン(-)と一致する必要があります。

grep '.\?-R' *.GNU

疑問符は、grepに、前の文字がオプションであることを示します。.すべての文字と一致します。

grep '\(\)-R' *.GNU

角かっこは空です。グループ

答え4

このようにダッシュを脱出してみてください。

grep "\-R" *.GNU

関連情報