Bash 中的脚本:查找所有文件

Bash 中的脚本:查找所有文件

我想在 Bash 中编写一个脚本,查找目录中所有小于 100b 的文件/etc,将结果拆分为页面并将结果保存到文件中。我尝试使用这个命令:

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 时,如果不是,则仅打印当前行。结果是每 60 行添加一个空行。

或者,稍微不那么冗长地说:

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

相关内容