我在采访中有这个问题。
他向我提出一个情况,即Linux操作系统中有12个文件。 给我一个命令,打开一个包含数据“Hello”的文件..
我告诉他我只知道grep
命令,它将为您提供具有“Hello”数据的文件的名称。
请告诉我是否有任何命令以这种方式打开文件..
答案 0 :(得分:1)
也许这可能会有所帮助:
$ echo "foo" > file1.txt
$ echo "bar" > file2.txt
$ grep -l foo * | xargs cat
foo
你有两个文件,而你正在寻找一个字符串为“foo”的文件。使用您选择的命令将cat
更改为打开文件。可以尝试vi
,emacs
,nano
,pico
......(不,另一场火焰战!)
如果有多个文件包含您要查找的字符串,您可能想尝试不同的方法...只考虑包含该字符串的一个文件。
答案 1 :(得分:1)
假设它只是一个包含单词hello
的文件:
less $(grep -H "hello" *.txt | sed s/:.*//)
这里首先使用带有grep
参数的-H
来捕获文件名。然后使用sed
删除除文件名之外的所有内容。最后使用less
打开文件。