.XMLファイルのリストを含むテキストファイルがあります。
ファイル内の各XMLの絶対パスが必要です。
次のシェルスクリプトを試しましたが、複数回試行した後でも、doタグ内でfindコマンドは機能しません。
#!/bin/sh
NAMES=`cat list2.txt`
for NAME in $NAMES;
do
echo "$NAME"
find $PWD -type f -name "$NAME"
done
ベストアンサー1
ループは問題を解決する誤った方法です。各ファイルのディレクトリツリーをクロールすることは非効率的です。すべてのファイルをアーカイブするには、ディレクトリを一度だけクロールする必要があります。良い:
find "$PWD" -type f -print0 | awk -F / '
!list_processed {names[$0]; next}
$NF in names' list.txt RS='\0' list_processed=1 -
list.txt
パスではなくファイル名のリストが1行に1つずつ含まれているとします。