• 締切済み

正規表現の使い方

正規表現の使い方で困っています。 lsでディレクトリの中身を確認して、その名前とひっとするものがあれば、IFの中に入りたいのですが、エラーが出てしまいます。 正しい書き方をご存じのかたご回答のほど宜しくお願いします。 set `cat /DS/tmp/liste.fal |grep -v \#` for i do verz=$(dirname $i) set `ls $verz` for j do if (test $j = "Kommentar.txt") then echo "$j ist jetzt Kommentar.txt" echo "cp $j $zielverz" elif [[ "$j" =~ "*fal" ]] then echo "$j ist jetzt *.fal" echo "cp $j $zielverz" と続いていくのですが、[[ "$j" =~ "*fal" ]] この部分が間違っているようです。 シンタックエラーがでます。 私が検索したいファイル名はのようなかたちです。 riipe.fal フォルダの中には、他にも rippe.fal.neu rippe.erg.fal.neu Kommentar.txt という名前のものがあります。 宜しくお願いします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「lsでディレクトリの中身を確認して、その名前とひっとするものがあれば、IFの中に入りたい」というのが, 何をしたいのか分かりません. とりあえず ・「ディレクトリの中身」を「確認する」というのはどういう操作なのか ・「その」が何を指しているのか ・「その名前とひっとするもの」の「もの」は何なのか が読み取れません. 「あなたのしたいこと」をもっと明瞭に (かつ理解しやすく) 書いてみた方がいいんじゃないかなぁ.

kenpanch7
質問者

お礼

コメントありがとうございました。 指定したファイルがある場合のみ、そのディレクトリの中の、そのファイルをディレクトリの階層を守ったままコピーまたは、リンクしたいのです。 ちなみに、試行錯誤した結果、 elif (echo $j | grep 'fal$') でできました。

すると、全ての回答が全文表示されます。
  • taka37777
  • ベストアンサー率30% (166/544)
回答No.1

bone shellならば、ワイルドカードになりますが、case文を使ってみたらどうでしょうか? http://chaichan.web.infoseek.co.jp/src/BSH.htm#B10

kenpanch7
質問者

お礼

ありがとうございます。参考にさせていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A