【问题标题】:How can I do the same job I do when using wc commands without wc commands?如何在不使用 wc 命令的情况下使用 wc 命令来完成相同的工作?
【发布时间】:2022-12-06 09:02:01
【问题描述】:

问题 2. 编写一个打印计数器表的 Bash 脚本 表示以每个字母开头的命令的数量 字母。对 /usr/bin 下的命令执行此操作。例如,在 /usr/bin 如果有38条以字母a开头的命令,26条命令 以字母 b 开头,... 和 10 个以字母 z 开头的命令, 然后你的脚本将打印

  • 一个38
  • ...
  • z 10

调用此脚本 counter.sh。排除以开头的命令 非字母字符。使用循环和数组来编写这个 脚本。


你可以在上面看到我的作业。实际上我可以使用 wc -l 命令来做这个作业。像这样:

for letter in {a..z}
do
echo "$letter $(ls /bin | grep "^$letter" | wc -l)"
done

但是由于我的作业,我不想使用 wc -l 命令。我一直在寻找,但没有找到答案。没有 wc 命令我怎么能做这个作业。请帮我。谢谢你的帮助。

【问题讨论】:

  • 你为什么不想使用 wc ?我就是这样做的(我可能会使用ls/bin/${letter*} | wc -l,但这很简单。

标签: linux bash shell ubuntu unix


【解决方案1】:

bash。用文件名和其元素的输出编号 (${#a[@]}) 填充数组 (a):

shopt -s nullglob   # see: man bash
for letter in {a..z}; do a=(/usr/bin/$letter*); echo "$letter ${#a[@]}"; done

输出(例如):

125
43
115
.
.
.
× 172
9
14

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多