需要帮助编写这个特定的bash脚本

时间:2014-03-15 00:06:17

标签: bash shell

  1. 构造管道以执行以下作业。 “ls的输出应显示在屏幕上,并从此输出显示行 包含“诗”这个词应该计算在内,并且计数应该是 存储在文件中。“

3 个答案:

答案 0 :(得分:1)

你的尝试很接近:

ls | tee /dev/tty | grep poem | wc -l >number_of_poems

tee /dev/tty将所有ls输出复制到终端。这满足了"输出ls应该显示在屏幕上的要求。"同时还将ls的输出发送到grep的标准输出。

这可以进一步简化:

ls | tee /dev/tty | grep -c poem >number_of_poems

请注意,这些解决方案都不需要bash。两者都适用于较小的shell,尤其是dash,这是类似debian的系统中的默认/bin/sh

答案 1 :(得分:1)

如果允许使用bash,请使用进程替换作为tee的接收器

ls | tee >( grep -c poem > number.of.poetry.files)

答案 2 :(得分:0)

这听起来像是家庭作业:)

#!/bin/bash
ls
ls -l | grep -c poem >> file.txt

第一个ls将在屏幕上显示输出 下一行使用一系列管道输出包含“诗”

的文件/目录的数量

如果其中有5个带有诗的文件,则file.txt将为5。如果file.txt已存在,则新计数将附加到结尾。如果您希望每次都覆盖文件,请将该行更改为阅读ls -l | grep -c poem > file.txt