変更されたファイルの内容をパラメータとして使用する

変更されたファイルの内容をパラメータとして使用する

スクリプトからMercurialリポジトリを消去し、$ FILENAMEから読み取られた多くの(設定可能な)ファイルパターンを保持できるようにしたいです。 hg コマンドの構文は次のとおりです。

hg purge --all --exclude PATTERN1 --exclude PATTERN2 ...

したがって、$ FILENAMEにファイルパターンのリスト(1行に1つのパターン)が含まれている場合は、コマンドラインを設定するには各パターンの前に "--exclude"を付ける必要があります。

現在のアプローチは、
grep -v -E "^[[:blank:]]*$" $FILENAME | sed "s/^/--exclude /g" | xargs echo
空白行とタブまたはスペースのみを含む行をスキップするパラメータのリストを作成することです。これを使用して上記のコマンドラインを作成するために使用すると、エラーが発生します。だから全体的に:

hg purge --all `grep -v -E "^[[:blank:]]*$" $FILENAME | sed "s/^/--exclude /g" | xargs echo`

私が知らないいくつかのxargsパラメータを使用するより良い方法はありますか?

ベストアンサー1

Mercurial自体には、ファイルリストを使用する簡単な方法もあるようです(#mercurialでmgが提案しています)。
hg purge --all --exclude "listfile:$FILENAME"

おすすめ記事