だから、次のコード行があります。
result=`find . -type f -size -1000c -print0 | xargs -0 ls -Sh | head`
for i in $result; do
item=`wc -c $i`
echo $item1
done
現在のフォルダにあるすべてのファイルを最大1000バイトまで次の形式で印刷します。
ファイルサイズ。/ファイル名
ところで、「./」記号を取り除きたくて「cut」を使ってみました。
私は似たようなことをしたい:
for i in $result; do
item=`wc -c $i`
item1=`cut -f 1 $item` // this gives me the size
item2=`cut -c 7- $item` // this gives me all the character after ./
echo item1, item2 // now make it print
done
ただし、次のエラーが発生します。
cut: 639: No such file or directory
誰でも私にヒントを与えることができますか?ありがとうございます。
答え1
システムのPOSIXサポートによれば、これが達成したいのと同じ結果を提供すると信じています。
find . -type f -size -1000c -printf '%P %s Bytes\n'
答え2
答え3
この試み:
ls -l | awk '$5 <= 1000{print $5, $9}'
答え4
find . -type f -size -1000c -printf "%s %f\n"
%s
ファイルサイズをバイト単位で印刷します。
%f
すべての先行ディレクトリが削除されたファイル名を印刷します(最後の要素のみ)。