Linux bash スクリプトの for ループに関する小さな質問があります。
10000 個のファイルを含むフォルダーがあります。10000 個のファイルから 100 個のファイルを一覧表示する for ループを作成しました。
For a in ~/Desktop/folder/*.txt
Do
Echo $a
Done
ただし、アルファベットに応じて最初の 100 個のファイルではなく、フォルダー内の最大の 100 個のファイルを一覧表示する必要があります。
Linux bash スクリプトの for ループに関する小さな質問があります。
10000 個のファイルを含むフォルダーがあります。10000 個のファイルから 100 個のファイルを一覧表示する for ループを作成しました。
For a in ~/Desktop/folder/*.txt
Do
Echo $a
Done
ただし、アルファベットに応じて最初の 100 個のファイルではなく、フォルダー内の最大の 100 個のファイルを一覧表示する必要があります。
なぜ for ループを使用しているのですか? 最大 100 個のファイルを表示したいだけの場合は、次のようにします。
ls -S | head -n 100
ファイルを取得するためだけにループを実行する場合は、そのためのツールがあることに注意してください: ls
.
問題に合ったコマンドについては、ls の man ページを参照してください。man ls
あなたの質問に答えるには:
の出力を使用してls -S
、ファイルをサイズで並べ替えてループすることができます。
ls -S *.txt | while read file; do
echo $file
done
ファイルの量を制限するには、head
. 次の例では、 の出力から最初の 100 行を出力しますls
。
ls *.txt | head -n 100