【发布时间】:2016-03-10 18:18:43
【问题描述】:
我正在练习在 Mac OSX 中使用终端。
我从根目录转到/dev/ 文件夹,并想查找包含null 的行,所以我使用ls 来获取文件夹内容。有很多,所以我认为这是使用grep 的机会。所以我输入了ls | grep "null",然后简单地返回null,而不是正常的ls列表中显示的整行null ttyp9。
为什么会这样?我以为grep 回复了完整的行?
【问题讨论】:
-
为什么是
ls或grep,就用printf "%s\n" *null* -
仅供参考,parsing the output of ls is generally considered bad。另请参阅:askubuntu.com/questions/578242/… 当然,如果您只是在学习,这是一种很好的练习方式,因为您可能会遇到所有奇怪的情况:)
-
@whrrgarbl 是的,只是学习。感谢这些链接
-
@whrrgarbl 阅读该链接...什么?!我没有意识到 Unix 对文件名中允许的字符如此宽容。
-
@ArukaJ - 不,解析
find也不是一直有效。检查mywiki.wooledge.org/ParsingLs 以获得解释和策略。 (提示:使用for循环,如果需要递归,请使用globstar。)