Bash (Shell脚本)对目录中的项目进行计数并显示出来

Bash (Shell脚本)对目录中的项目进行计数并显示出来,bash,shell,count,counter,Bash,Shell,Count,Counter,(Shell脚本)对目录中的项目进行计数并显示出来 我有一些代码使用ls列出目录中的项目,但是我想知道是否有方法计算目录中的项目数并显示数字。例如,到目前为止,我的代码是: cd /home/$USER/.local/share/Trash/files && ls 上面的代码是定位我的垃圾桶,我删除的文件所在的位置。假设我有这样的东西: Music Wallpapers Movies Etc There are [4] Items in this directory: 1.

(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
我怎样才能让它看起来像这样:

Music
Wallpapers
Movies
Etc
There are [4] Items in this directory:

1. Music
2. Wallpapers
3. Movies
4. Etc
非常感谢您的帮助

仅将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}'

如果目录中有任何文件名称中包含换行符,则这些文件将计算错误。

谢谢!你能解释一下你所说的“新线”是什么意思吗。你是说单词之间有空格吗?无论如何,到目前为止,它工作得很好;不鼓励这样做,因为人们错误地编写这样的代码,假定文件名不包含换行符。