findの「regex」および「name」ディレクティブ

stillanoob

コマンドの-nameオプションはどのような正規表現構文をfind期待していますか?と同じだろうという印象でした-regexが、そうではないようです。

$ mkdir test && cd test
$ touch .sw.
$ touch .swp
$ touch .abc.swo
$ touch notswap.py
$ find . -name "*sw." -type f
./.sw.
$ find . -name "*sw*" -type f
./notswap.py
./.sw.
./.swp
./.abc.swo
$ find . -regex ".*sw." -type f
./.sw.
./.swp
./.abc.swo

FWIW、-regexパス全体に一致し-name、ファイル名のベースのみに一致することを認識しています。それがここでの問題ではないことは明らかだと思います。より具体的な質問としてオプションを使用して、.swxwhereで終わるすべてのファイルをx任意の文字に一致させるにはどうすればよいですか-name

メタ情報:

$ find --version
find (GNU findutils) 4.5.11
...
$ echo $0
bash
jesse_b
-name pattern
              Base of file name (the path with the leading directories
              removed) matches shell pattern pattern.  Because the leading
              directories are removed, the file names considered for a match
              with -name will never include a slash, so `-name a/b' will
              never match anything (you probably need to use -path instead).
              A warning is issued if you try to do this, unless the
              environment variable POSIXLY_CORRECT is set.  The
              metacharacters (`*', `?', and `[]') match a `.' at the start
              of the base name (this is a change in findutils-4.2.2; see
              section STANDARDS CONFORMANCE below).  To ignore a directory
              and the files under it, use -prune; see an example in the
              description of -path.  Braces are not recognised as being
              special, despite the fact that some shells including Bash
              imbue braces with a special meaning in shell patterns.  The
              filename matching is performed with the use of the fnmatch(3)
              library function.  Don't forget to enclose the pattern in
              quotes in order to protect it from expansion by the shell.

正規表現ではなくシェルパターンを使用します。

ソース: find(1)


名前の下のGNUマニュアルから

名前が特定のパターンに一致するファイルを検索する方法は次のとおりです。これらのテストのパターン引数の説明については、シェルパターンマッチングを参照してください。

2.1.4シェルパターンマッチング

findおよびlocateは、ファイル名またはファイル名の一部をシェルパターンと比較できます。シェルパターンは、ワイルドカードまたはメタ文字と呼ばれる次の特殊文字を含む可能性のある文字列です。

シェルがメタ文字自体を展開しないようにするには、メタ文字を含むパターンを引用符で囲む必要があります。二重引用符と一重引用符はどちらも機能します。バックスラッシュでエスケープすることも同様です。

  • *
    0個以上の文字に一致します。
  • ?
    任意の1文字に一致します。
  • [string]
    文字列文字列のメンバーである1文字に正確に一致します。これは文字クラスと呼ばれます。省略形として、文字列には範囲が含まれる場合があります。範囲は、ダッシュを挟んだ2文字で構成されます。たとえば、クラス '[a-z0-9_]'は、小文字、数字、またはアンダースコアに一致します。'!'を配置すると、クラスを否定できます。または、開き角かっこの直後の「^」。したがって、「[^ AZ @]」は、大文字またはアットマークを除くすべての文字に一致します。
  • \
    それに続く文字の特別な意味を削除します。これはキャラクタークラスでも機能します。
    シェルパターンマッチング(「-name」、「-wholename」など)を行う検索テストでは、パターン内のワイルドカードは「。」に一致します。ファイル名の先頭。これは、検索の場合にも当てはまります。したがって、 'find -name' * macs ''は、 'locate' * macs ''と同様に、.emacsという名前のファイルと一致します。

スラッシュ文字は、ワイルドカードが一致しないシェルとは異なり、検索と検索が行うシェルパターンマッチングでは特別な意味を持ちません。したがって、パターン「foob​​ar」はファイル名「foo3 / bar」と一致でき、パターン「./srsc」はファイル名「./src/misc」と一致できます。

'locate'コマンドを使用して一部のファイルを検索したいが、完全なリストを表示する必要がない場合は、 '-limit'オプションを使用して、少数の結果のみを表示するか、 '-count'オプションを使用できます。一致の総数のみを表示します。


あなたの質問に答えるには:

find . -name "*.sw?" -type f

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AngularJS ディレクティブ - 制限: 'A' およびそのディレクティブを値に設定

分類Dev

Jenkins Pipeline Jenkinsfile: 'node'および 'pipeline'ディレクティブ

分類Dev

Jenkins Pipeline Jenkinsfile: 'node'および 'pipeline'ディレクティブ

分類Dev

Angular5-ディレクティブngClassおよびngStyleinnerHTML

分類Dev

ディレクティブを簡単に追加および削除

分類Dev

WebStormおよびMaterial2ディレクティブ

分類Dev

「continue」ディレクティブのシミュレート、およびその他の代替案

分類Dev

AngularNgRouteおよびリーフレット宣言ディレクティブ

分類Dev

Angular JSとディレクティブリンクおよび$ timeout

分類Dev

ControllerAsおよびTypeScriptクラスを使用したAngularJsディレクティブ

分類Dev

外部APIへのAngularディレクティブのテスト:$ applyおよび$ digest

分類Dev

DirExistsWarningおよびその他のディレクティブでスクリプト定数を使用する

分類Dev

anglejsおよびrequirejsを使用する場合のディレクティブレンダリング遅延

分類Dev

8086アセンブリのDBおよびDUPディレクティブについて

分類Dev

Bootstrap-ActiveおよびAngularディレクティブを強調表示

分類Dev

Angular-controllerAs、bindToController、および$ scope。$ watchを含むディレクティブ

分類Dev

Cヘッダーファイル、および#defineディレクティブ

分類Dev

ヘルムマージおよびdictディレクティブ?

分類Dev

角度のある動的なディレクティブのロード、およびイベント管理

分類Dev

分離スコープの使用-単純なAngularディレクティブでの@、&、および=

分類Dev

C#SqlCommandとSql Connection、およびSystem.Web.UIのディレクティブの使用

分類Dev

anglejsおよびカスタムメソッド/ htmlでのディレクティブ

分類Dev

_GNU _、_ attribute_、およびプラグマ拡張とディレクティブの意味は何ですか

分類Dev

カスタム属性ディレクティブおよびデータバインディング属性ディレクティブで@Attributeを使用します

分類Dev

AngularJSディレクティブ、ControllerAs、スコープ、およびvmプロパティ

分類Dev

ディレクトリおよびサブディレクトリレベルの.htaccess

分類Dev

ディレクトリおよびサブディレクトリ内のパターンに一致するファイル名を「find」または「grep」

分類Dev

Angular6で期待どおりに機能しない最小および最大ディレクティブ

分類Dev

ディレクトリおよびサブディレクトリ内のフォルダ数を返す

Related 関連記事

  1. 1

    AngularJS ディレクティブ - 制限: 'A' およびそのディレクティブを値に設定

  2. 2

    Jenkins Pipeline Jenkinsfile: 'node'および 'pipeline'ディレクティブ

  3. 3

    Jenkins Pipeline Jenkinsfile: 'node'および 'pipeline'ディレクティブ

  4. 4

    Angular5-ディレクティブngClassおよびngStyleinnerHTML

  5. 5

    ディレクティブを簡単に追加および削除

  6. 6

    WebStormおよびMaterial2ディレクティブ

  7. 7

    「continue」ディレクティブのシミュレート、およびその他の代替案

  8. 8

    AngularNgRouteおよびリーフレット宣言ディレクティブ

  9. 9

    Angular JSとディレクティブリンクおよび$ timeout

  10. 10

    ControllerAsおよびTypeScriptクラスを使用したAngularJsディレクティブ

  11. 11

    外部APIへのAngularディレクティブのテスト:$ applyおよび$ digest

  12. 12

    DirExistsWarningおよびその他のディレクティブでスクリプト定数を使用する

  13. 13

    anglejsおよびrequirejsを使用する場合のディレクティブレンダリング遅延

  14. 14

    8086アセンブリのDBおよびDUPディレクティブについて

  15. 15

    Bootstrap-ActiveおよびAngularディレクティブを強調表示

  16. 16

    Angular-controllerAs、bindToController、および$ scope。$ watchを含むディレクティブ

  17. 17

    Cヘッダーファイル、および#defineディレクティブ

  18. 18

    ヘルムマージおよびdictディレクティブ?

  19. 19

    角度のある動的なディレクティブのロード、およびイベント管理

  20. 20

    分離スコープの使用-単純なAngularディレクティブでの@、&、および=

  21. 21

    C#SqlCommandとSql Connection、およびSystem.Web.UIのディレクティブの使用

  22. 22

    anglejsおよびカスタムメソッド/ htmlでのディレクティブ

  23. 23

    _GNU _、_ attribute_、およびプラグマ拡張とディレクティブの意味は何ですか

  24. 24

    カスタム属性ディレクティブおよびデータバインディング属性ディレクティブで@Attributeを使用します

  25. 25

    AngularJSディレクティブ、ControllerAs、スコープ、およびvmプロパティ

  26. 26

    ディレクトリおよびサブディレクトリレベルの.htaccess

  27. 27

    ディレクトリおよびサブディレクトリ内のパターンに一致するファイル名を「find」または「grep」

  28. 28

    Angular6で期待どおりに機能しない最小および最大ディレクティブ

  29. 29

    ディレクトリおよびサブディレクトリ内のフォルダ数を返す

ホットタグ

アーカイブ