(Shell脚本)计算目录中的项目并将其显示出来
我有一些代码使用ls
列出目录中的项目但是我想知道是否有办法计算目录中的项目数并显示数字。例如,到目前为止我的代码是:
cd /home/$USER/.local/share/Trash/files && ls
上面的代码是找到我的垃圾箱,我删除的文件位于此处。假设我有类似的东西:
Music
Wallpapers
Movies
Etc
我怎样才能让它看起来像这样:
There are [4] Items in this directory:
1. Music
2. Wallpapers
3. Movies
4. Etc
非常感谢任何帮助!
答案 0 :(得分:1)
只需将ls传递给nl:
cd /home/$USER/.local/share/Trash/files && ls | nl -s '. '
如果你真的想要标题,请将其传递给awk:
ls | nl -s '. ' | awk '
{c+=1; e=e RS $0} END {print "There are [" c "] Items in this directory" RS e}'
或者只是跳过nl
:
ls | awk '
{e=e RS NR ". " $0} END {print "There are [" NR "] Items in this directory" RS e}'
如果目录中包含名称中包含换行符的任何文件,这些将会错误计算。