【发布时间】:2015-02-22 03:47:54
【问题描述】:
我是 unix 的初学者,被分配了以下任务:
列出您的主目录的内容,将此输出存储在名为 newHomelist 的文件中,然后计算此输出的行数。
首先我检查了我的结果应该是什么:
ls ~/ | wc -l
我由此得到结果“20”。
然后我尝试了以下方法:
ls ~/ > newHomelist | wc -l
但是,这给了我“0”的结果。我想我理解它为什么这样做,因为我已经移动了文件中的所有行,因此它没有计算任何东西。我想我需要进入文件然后计算行数。像这样的:
ls ~/ > newHomelist | more newHomelist | wc -l
但是我得到的结果是“23”。这不是我所期待的结果。谁能告诉我哪里出错了?
谢谢
【问题讨论】:
-
任务是否说明您需要使用单个命令执行此操作?使用分号(或换行符)分隔的多个命令怎么样?顺便说一句,
more是交互式的,并且添加了更多行,因此行数增加了。 -
它没有,尽管它属于一个名为“重定向和管道”的部分,我认为应该使用一个命令来完成。根据您的建议,我尝试了以下方法: ls ~/ > newHomelist ;更多新家列表 | wc -l 这给了我正确的“20”输出,所以我对这个结果很满意,谢谢。我现在将阅读您所说的“更多是互动的”是什么意思。
-
如果程序需要用户输入(并且通常打印输出作为响应),则该程序称为 interactive。
more是一个允许浏览大文件的寻呼机。如果有更多要显示的内容,它会在屏幕底部打印一个名为--More--的提示,因此它的名字。试试more sometextfile看看。然后在--More--提示符下键入h寻求帮助。那是用户输入more会做出反应。
标签: unix