ファイル bash サイズ [閉じる]

ファイル bash サイズ [閉じる]

/ etcにあるすべてのファイル.confのサイズを表示し、サイズ出力をfile.txtにリダイレクトする必要がありますが、リダイレクトされた出力の制限を設定するフラグをコマンドに追加したいと思います。

私のコマンドは次のとおりです。

find /etc -name "*.conf" -printf "%s\n" | paste -sd+ | bc > file.txt

ただし、このコマンドは365077バイトを表示します。

リダイレクトされた出力の値が120000バイトから300000バイトの間になることを望みます。つまり、cat file.txtを実行すると、120000バイトから300000バイトの間の値が得られます。

コマンドのフラグを見つける方法は?

答え1

$ find /etc -name \*.conf 2> /dev/null | xargs du -sc | tail -n1
1092    total

.confこのコマンドを実行するユーザーが検査する権限を持つこのホストの合計ファイルサイズは1092バイトです。

答え2

結果を120000〜300000バイトに制限するには、awk最後にフィルタを追加することが1つの方法です。

find ... | bc | awk '$1 >= 120000 && $1 <= 300000' > file.txt

これにより、file.txt範囲外の合計に対してnullが生成され、それ以外の場合は合計がファイルに送信されます。

合計が次の範囲内にある場合にのみファイルを生成します。

... | awk '$1 >= 120000 && $1 <= 300000 { print $1 > "file.txt" }'

...awkにファイルに書き込むようにしてください。最後にリダイレクトを削除してください。

関連情報