用于打开包含给定数据的文件的命令

时间:2014-03-06 16:36:51

标签: linux

我在采访中有这个问题。

他向我提出一个情况,即Linux操作系统中有12个文件。 给我一个命令,打开一个包含数据“Hello”的文件..

我告诉他我只知道grep命令,它将为您提供具有“Hello”数据的文件的名称。

请告诉我是否有任何命令以这种方式打开文件..

2 个答案:

答案 0 :(得分:1)

也许这可能会有所帮助:

$ echo "foo" > file1.txt
$ echo "bar" > file2.txt
$ grep -l foo * | xargs cat
foo

你有两个文件,而你正在寻找一个字符串为“foo”的文件。使用您选择的命令将cat更改为打开文件。可以尝试viemacsnanopico ......(不,另一场火焰战!)

如果有多个文件包含您要查找的字符串,您可能想尝试不同的方法...只考虑包含该字符串的一个文件。

答案 1 :(得分:1)

假设它只是一个包含单词hello的文件:

less $(grep -H "hello" *.txt | sed s/:.*//)

这里首先使用带有grep参数的-H来捕获文件名。然后使用sed删除除文件名之外的所有内容。最后使用less打开文件。