grepとfindの間でパラメータを使用するコマンドを覚えるには?

grepとfindの間でパラメータを使用するコマンドを覚えるには?

すべてを使用するときにコマンドを入力する必要がある順序を置いて迷っていgrepますfind。パスをいつ作成するのか、フラグをいつ作成するのか、二重引用符が必要なのかなどが問題です。

私は誇りに思うよりも多くを検索しました。

~のためgrep

# Searching all files in the directory (recursively)
grep -rni "string" *

# Disecting it
command  flags  parameter  path
-------------------------------
grep     -rni   "string"   *

~のためfind

# Searching for a file by name
find . -type f -name "file-name*"

# Disecting it
command  path  flag   parameter   flag   parameter
-------------------------------------------
find     .     -type  f           -name  "file-name*"

パスが現れる時期やフラグが現れる時期などを記憶する良い方法はありますか(毎回単に検索する代わりに)?


解決しよう 1: マニュアルページ

私はこのマニュアルページが好きですが、おそらく間違って使用しているようです。それらは詳細ですが(良いですが)与えられたコマンドの使い方の簡単な例を得るためには、マニュアルページに問題があるでしょう。

と書くとman find上部付近に次のような内容が表示されます。

SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]

解決策の試み2:よく使用されるコードスニペットの例を保存する

また、頻繁に使用するスニペットを簡単に保存して、作業例をすばやくロードすることもできます。

しかし、他の人はここで何をしていますか?これは他の人にとって直感的に見えますか?

答え1

grepを実行してみると、どのような順序でコマンドを入力するのか、いつパスを作成するのか、いつフラグを作成するのか、二重引用符が必要かなどを悩んでいました。

コマンドの一般的な規則は次のとおりです。オプションが最初に来て、それには一度だけ現れる「固定」引数、ファイル名のように何度も現れる「可変」引数が続きます。

grep持つ一つモードと検索可能たくさん文書。だからそれは「オプション、モード、ファイル」です。ここには驚くべきことはありません。

find少し変です。唯一の「実際の」パラメータは、再帰検索を開始する場所を説明するパスです。以下は、接続(または追加オプション)を介して組み合わせることができるさまざまなオプションを介して一致するものを説明し、他のオプションで説明する操作を説明するミニ言語です。だから、「ディレクトリ、一致オプション、動作オプション」です。

この点に注意してください。あえて探す必要はありません。少なくともそれは私がそれらを覚えている方法です。 (そして私はまだ時々man find忘れられた一致するオプションを読んでいます。)

関連情報