Bashのスクリプト:すべてのファイルを探す

Bashのスクリプト:すべてのファイルを探す

ディレクトリ内の100b未満のすべてのファイルを見つけ、結果を/etcページに分割し、結果をファイルに保存するスクリプトをBashで作成したいと思います。私は次のコマンドを試しました。

find /etc -size -100c | sort | > results

しかし、ページで結果を分割する方法がわかりません。

答え1

find /etc -size -100c | sort |
    awk '{ print; } ! (NR % 60) { printf ("\n\n\n\n\n\n"); }' > result

答え2

なぜ「ページ」が欲しいのかわかりません。ファイルを読み取るために使用できるほとんどのプログラムは、とにかく(lessまたは他のビューアやエディタ)この種の操作を処理します。しかし、必要に応じて次のようにするのは簡単です。

find /etc -size -100c | sort | 
    perl -ne '$. % 60 == 0 ? print "$_\n" : print' > results

$.現在行番号を保持する特殊変数です。したがって、上記のコードは現在の行を印刷し、その後に改行文字(print "$_\n")現在の行番号($.)モジュールで60が0の場合、そうでない場合は現在の行のみを印刷します。結果は行ごとに空白行を追加することです)。 。

または少し冗長に言うと、次のようになります。

find /etc -size -100c | sort | perl -pe 'print "\n" if $. % 60 == 0' > results

関連情報