2017-09-26 8 views
1

を代入していないし、正規表現の値と一致しないようです。正規表現は、私はスクリプトからこのコマンドを実行しようとしていたファイル名

cat /config.yml_orig >> /build/Product*/config.yml 

そしてそれは、ディレクトリの製品番号はので、私は*で置換されていましたが、コマンドラインで、それは、このための正規表現に一致するように失敗に変化し続けている

/build/Product*/config.yml: No such file or directory 

で失敗します。

コマンドはそのA正規表現を識別するために失敗し、このための解決策は何ですか。あなたは、ファイルを作成している場合は、それを使用することはできませんので、

+1

シェルでは、正規表現ではなく、ワイルドカード( "globs")を使用しています。 – Barmar

+0

'/ build/Product *'と一致する複数のディレクトリが存在する可能性はありますか?そうであれば、そのパターンと一致する複数のディレクトリが存在する場合、あなたの戦略と現在の回答は楽しくてエキサイティングな方法で壊れます –

答えて

1

ワイルドカードは、既存のファイルと一致します。あなたはその後、ファイル名を追加し、ワイルドカードで別途ディレクトリを取得する必要があります。

dir=$(echo /build/Product*) 
cat config.yml_orig >> "$dir"/config.yml 
0

パターンは全部に一致するようにしようとしている、そして「config.yml」ファイルが存在しない場合には失敗しています。試してください:

cat config.yml_orig >> "$(echo /build/Product*)"/config.yml 
関連する問題