49535


以下のようなファイルが数千ファイルあります。

000000000001_0_0_ **1** _ドキュメント_1111111_001_001.docx

太字の箇所が1であるファイルを一括でmvしたいのですが、どのように記述したら良いでしょうか。

このように記述しましたが上手く抽出出来ませんでした。  
*_?_?_1_*.*

またDBにも同じ用にデータが入っており、どのようにwhere句で指定すると、対象に出来ますでしょうか。

初歩的な事で申し訳ないのですが、よろしくお願い致します。


CC BY-SA 4.0
2018-10-22T10:34:44.390
49532
2018-10-22T12:12:49.807
29842
question
mysql centos 正規表現
centos/mysqlでの正規表現についてご教示ください。


前提として、`ls`や`mv`などのファイル操作で指定できるのは正規表現ではなく **ワイルドカード**
です。そして正規表現とワイルドカードでは同じ記号でもその意味が異なります。

`?`は正規表現だと「直前の文字の0,1回の繰り返し」ですが、ワイルドカードでは「 **任意の一文字** 」を表します。

質問の例に対してワイルドカードで(雑に)マッチさせるなら、以下の様な記述になります。

[code]

    ????????????_?_?_1_*
    
[/code]

* * *

MySQLの`where`句でパターンマッチをする場合も正規表現ではなくワイルドカードの指定になりますが、扱う記号が微妙に異なるようです。私自身あまりMySQLは詳しくないので解説は省略させてもらいます。

参考： [MySQLの使い方 パターンマッチングで比較](https://www.dbonline.jp/mysql/select/index7.html)


CC BY-SA 4.0
2018-10-22T12:12:49.807
49535
2018-10-22T12:12:49.807
3060
49532
answer