このようなforループでは、
for i in `cat *.input`; do
echo "$i"
done
入力ファイルの1つに、のようなエントリが含まれている*a
場合は、「a」で終わるファイル名を指定します。
このファイル名の拡張を防ぐ簡単な方法はありますか?
複数のファイルを使用するため、グロブ(set -o noglob
)は適切なオプションではありません。cat
の出力をフィルタリングして特殊文字をエスケープすることもできるはずですが、
for i in `cat *.input | sed 's/*/\\*'`
...
まだ*a
拡大を引き起こしますが
for i in `cat *.input | sed 's/*/\\\\*'`
...
私に与えます\*a
(バックスラッシュを含む)。[これは別の質問だと思いますが]