以下のように、設定テキストファイルのファイル拡張子を保持する動的文字列変数を作成したいと思います。悪いことは、文字列値に正規表現が含まれていることです。
EXCLUDE_EXTENSION="\.(log|txt|png)$"
ログ、txt、png 拡張子は、Excepted_ext.txt というテキストファイルから取得されます。したがって、clusive_ext.txtの内容は次のようになります。
log
txt
png
したがって、Excepted_ext.txtに別の拡張子を追加するたびに、EXCLUDE_EXTENSION変数に更新された拡張子を取得します。たとえば、Excepted_ext.txtに追加の「log」拡張子を追加した場合
log
txt
png
log
その後、EXCLUDE_EXTENSION変数の値を自動的に次のように更新する必要があります。
EXCLUDE_EXTENSION="\.(log|txt|png|log)$"
正規表現を使うべきだと思いますが、どうすればいいかわかりません。
#!/bin/sh
# read from a text file
EXCLUDED_TEXT=`cat excluded_ext.txt`
# create array from the text file
# Im not sure how to go next.
ベストアンサー1
使用paste
とコマンドの置き換え:
EXCLUDE_EXTENSION='\.('"$(paste -d'|' -s excluded_ext.txt)"')$'