アプリ版:「スタンプのみでお礼する」機能のリリースについて

bashスクリプトのgrepでカレントディレクトリ配下の以下文言を検索する構文を教えてください。

※「」は含まない
①「 3XX 」 ←3の左にスペース、2つ目のXの右にスペース、XXは何の数字でも良い
②「"3XX"」 ←ダブルクォーテーション("")も含んで検索

①もしくは②に該当するものがあれば検索。

A 回答 (2件)

やってみました。



./tmp/tmp/tmp

なるディレクトリとファイルを作り、tmpファイルの中身を下記の様にしました。

 402 kjsnkccccccccccccccccc
 431 osovsv0902938402
 301 abcdefg
 222 0-9234000000000000000004
 212 0984039430 389
 389 092403294000000000000000
 312 あいうえお
 501 092320

コマンドとして...

find . -name "*" -exec grep -s -d skip -H -n "^ 3[0-9][0-9] " {} \;

を実行すると...

./tmp/tmp/tmp:3: 301 abcdefg
./tmp/tmp/tmp:6: 389 092403294000000000000000
./tmp/tmp/tmp:7: 312 あいうえお

となりました。ご質問者様の意図していない(私の勝手な配慮)として...

●"-r"オプションでなくてfindコマンド利用。
●行頭でのみマッチング"^"。
●行番号表示"-n"。
    • good
    • 1

① grep -r " 3XX " .


② grep -r '"3XX"' .
①もしくは② grep -r ' 3XX \|"3XX"' .

参考:
・カレントディレクトリ以下、子ディレクトリ、孫ディレクトリ、、、、等全部検索 ⇒ grep -r ~~~ .

・「または」⇒ '\|'
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!