- ベストアンサー
コマンド find の「繰り返し」正規表現
- Debian 2.6.18 を使用している場合、正規表現を使用したいがうまくいかない。
- find コマンドで正規表現を使用する方法を教えてください。
- find コマンドで正規表現の繰り返しを指定する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- find コマンドの成否
OS は Debian 7.6 ですが、 ~/Desktop の直下に 001.txt を配置しているのですが、 $ cd ~/Desktop の後に次のコマンドを打つと $ find . -maxdepth 10 -name *001* ./001.txt と、ちゃんと見つかってくれます。 ちなみに -maxdepth 10 は念のためにつけておいたものです。 /media/8G でマウントされているUSBメモリの直下に 001.txt を配置していても $ cd /media/8G の後に $ find /media/8G -maxdepth 10 -name *001* $ find . -maxdepth 10 -name * | grep 001 $ find . -maxdepth 10 -name "*" | grep 001 のいずれを試しても、001.txt を見つけてくれません。 なぜこうなるのかサッパリわかりません。 どうしたらいいかお教え下さい。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- 正規表現について
下記期待する結果通りになる正規表現を考えておりますが、 うまくいきません。教えて下さい。 期待する結果 hoge(fuga sumomo) マッチする hoge(foo(sumomo)) アンマッチする sumomoが()で囲われている hoge(bar()sumomo) マッチする 作成した正規表現 hoge\([^(]*sumomo[^)]*\) 実際の結果 hoge(fuga sumomo) マッチ hoge(foo(sumomo)) アンマッチ hoge(bar()sumomo) アンマッチ ←予想と違う
- 締切済み
- その他(プログラミング・開発)
- unixのfindコマンド
unixのfindコマンドで、ある複数のディレクトリから指定のファイル名だけを 検索し、その結果をgrepしたいのですが、 例えば 01_dir 02_dir : 11_di : 21_dir : と言うディレクトリがあります。 そこから、「0」で始まっているディレクトリの中なら拡張子が*.txtを 検索し、その検索したファイルに対して、grepを実行したいのですが、 上手くいきません。 もちろん、各ディレクトリには、「.txt」以外のファイルもありますし、 ファイル名にも条件を付与したいです。 以下の様に、 find . -name "0*_dir" -type d -print | xargs ls -l *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs ls *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls -l '{} /*.txt' | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls {} "検索文字" とやってみたのですがだめでした。 find ./ -type d \( -name '1_*dir' -o -name '2*_dir' -o -name '3*_dir' \) -prune -o -type f -print と「-prune」で除外するディレクトリを指定すればできなくはないですが、 すべてのディレクトリ書くのはいい方法ではないです。 よい方法をお願いします。 OSは、Solaris 11.3です。
- ベストアンサー
- Solaris系OS
- 正規表現 半角数字1から100
.Net Framework のRegex.Replace で、半角数字1から100の範囲を正規表現で指定する方法を教えてください。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 正規表現
Java 5.1 java.util.regex.Pattern java.util.regex.Matcher を用いてHTMLのTABLEを抽出したいのですが、ヒットしません。正規表現のパターンはどうしたらいいのでしょう? パターン: < *table.*?>[\s.]*?< */table *?> 検索対象: … <table border=1 width=200> <tr><th>AA</th><th>BB</th></tr> <tr><td>CC</td><td>DD</td></tr> <tr><td>EE</td><td>FF</td></tr> </table> … で、TABLEタグを含むTABLE全体を期待したのですが全くヒットしませんでした。 ちなみに * <table …>と</table>単体ではヒットします。 * ソースから改行文字を取り除いて一行テキストとした場合にはヒットします。 これらのことから、改行文字がマッチしていないことが原因かと思うのですが、パターンの正規表現についてご教授願います。
- ベストアンサー
- Java
- コマンドライン引数で正規表現を指定したい
Perlでgrep -Aのようなことがしたいです。 ---------------grep.pl------------------------------- use strict; use warnings; #コマンドライン引数の確認 if(@ARGV != 3){ die "USAGE: \0 [num] [regex] [file]"; } #数字の読み込み my $num = $ARGV[0]; #正規表現の読み込み my $regex = qr/$ARGV[1]/; #ファイル名の読み込み my $file = $ARGV[2]; #該当行を保存する配列 my @lines = (); open my $fh, '<', "$file" or die "$!"; my @file = <$fh>; close $fh; for(my $i=0; $i<@file; $i++){ if($file[$i] =~ /$regex/){ push @lines, $file[$i]; for(my $j=1; $j<=$num; $j++){ if($i+$j < @file){ if($file[$i+$j] !~ /$regex/){ push @lines, $file[$i+$j]; }else{ last; } }else{ last; } } } } foreach my $item (@lines){ print $item; } ------------------------------------------------- ところが、正規表現がうまく読み込めません。 perl grep.pl 2 \d{4}\/\d{2}\d{2} test.txt などとしても、\d{4}\/\d{2}\d{2}の部分が機能しません。 コマンドライン引数から正規表現を指定するにはどうしたらよいでしょうか。
- ベストアンサー
- Perl
- 正規表現で<%…>を検索したい
FC2ブログのカスタマイズを学習しています。 変数(<%blog_name>など)をすべて、エディタで検索したいのですが、 <.*> ではうまくいきません。 例えば meta name="author" content="<%author_name>"> の行で『<%author_name>">』がヒットしてしまいます。 これを『<%author_name>』がヒットするようにしたいのですが、 『<%』からはじまって最初の『>』まで、を正規表現ではどのように書けばいいのでしょうか? エディタはezーHTMLを使用しています。
- ベストアンサー
- その他(プログラミング・開発)
- Apacheの設定での正規表現(パターンマッチ)の書き方について
<Directory "/home/*/public_html"> ... という記述のうち、/home/foo と /home/bar の2つだけ除外させるには、どういった正規表現(パターンマッチ)を書けばよいのでしょうか?
- 締切済み
- その他([技術者向] コンピューター)
- 正規表現で完全一致したキーワードのみ置換したい
例えば、 SLEEP AND ASLEEPの文字列から SLEEPを検索し、.zZに変換したいと思います。 しかし、ASLEEPにはHITして欲しくありません。 正規表現でSLEEPだけマッチングさせるには、 どのような式を与えたら良いでしょうか? そのまま置換に使用したいので、 取得結果としては、オフセット(0,5)が取得できて欲しいです。 正規表現には、POSIXのregexを使用します。
- ベストアンサー
- その他(業務ソフトウェア)
- grep 正規表現の扱い方 特定のファイル郡のみを指定するには?
ディレクトリのファイルをgrepを使った正規表現で指定したいのですが、 /hoge/temp[001-999].php のように、hogeディレクトリにあるphpファイル全てを含め、なおかつ、 /hoge/foo/temp[001-999].php のように、hoge/fooディレクトリにあるphpファイルを全て含めない正規表現の書き方を教えてほしいです。 正規表現にあまり詳しくなく、思いつくものといっても「hoge/.*.php」くらいで、当たり前ですが双方のディレクトリが含まれてしまいます・・・。 もう一つ、質問です。 /hoge/ ディレクトリにあるファイル全てを含め、なおかつ /hoge/foo/ ディレクトリにあるファイルは全て含めない という指定の仕方も教えてほしいです。 分かる方がいましたら、お手数ですがぜひ教えてください。よろしくお願いします<(_ _)>
- 締切済み
- その他(プログラミング・開発)
お礼
ありがとうございます。 おかげであきらめがつきました。 せっかくのご提案ですが、稼働中のサーバなのであまり変わったことはしたくないのです。