ディレクトリ内の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