为什么grep在这种情况下不返回整行?

时间:2016-03-10 18:18:43

标签: linux macos bash grep

我正在Mac OSX中使用终端练习。

我从root访问了/dev/文件夹,想要查找包含null的行,因此我ls获取了文件夹内容。有很多,所以我认为这是一个使用grep的机会。因此,我输入了ls | grep "null",然后返回null而不是整行null ttyp9,如正常ls列表中所示。

为什么会这样?我以为grep返回了整行?

2 个答案:

答案 0 :(得分:1)

grep确实返回完整行。 ls命令本身并不提供详细信息。试试这个:

ls -l | grep "null"

该列表标志提供了更多细节,然后grep可以返回。

换句话说,grep正在按照您的意愿行事,没有什么可看的。

没有选项的ls命令只显示文件名。通常会返回返回的文件名列表。如果输入以下内容,您可以打开它们:

ls -1

如果您查看此商家信息,您会看到null实际上就是一行。

如果您添加long listing选项:

ls -l

您将看到更多细节。 grep命令只能返回给它的内容,在这种情况下ls是为grep提供所有输入的内容。

答案 1 :(得分:1)

ttyp9是一个不同的文件。

ls向您显示输出列。

如果没有发送到终端ls,则不会这样做,并且就像使用-1参数一样。