du -sh *
あなたが望むものではありません。標準入力を介して提供されるリストではなく、現在のディレクトリで動作します。しかし、あなたは正しい一般的な考えを持っています。
svn list -v -R file://path/to/repo >svnlist.txt
リポジトリ内のすべてのファイルに関する詳細を含むテキスト ファイルが作成されます。各行の 3 番目の項目は、ファイル サイズ (バイト単位) です。やりたいことは、1073741824 以上の値を持つ 3 番目のフィールドを持つすべての行を除外することです。
gig=$(( 1024*1024*1024 ))
while read line
do
size=$(echo $line | awk '{print $3}')
[[ $size -ge $gig ]] && echo $line
done <svnlist.txt
これawk
は、サイズ (バイト単位) である 3 番目のフィールドを抽出するために使用されます。この値がギガバイトの事前計算値より大きい場合、ファイルのサイズとパスを含む行全体が出力されます。ディレクトリにはサイズ フィールドがないため、問題が発生します。その場合、size
月の名前が含まれることになります。テキストと数値が字句的に比較される方法によりif
、この場合は常に false と評価されます。