2014-03-06 23 views
2

我在采访中遇到了这个问题。打开包含给定数据的文件的命令

他把我面前的情况说明你的Linux操作系统中有12个文件。 给我一个命令,将打开一个包含数据“你好”的文件。

我告诉他我只知道grep命令,它会给你带有“Hello”数据的文件名。

请告诉我,如果有任何命令来打开这样一个文件..

+1

定义“打开” - >用'vi'编辑,用'cat'打印...? – fedorqui

+0

'cat *'会打开所有的文件,并打开包含数据“Hello”的文件,但我的猜测是,这不是他们想要的......没有更多的信息,但很难说... – twalberg

回答

1

假设这将只有一个含有字hello文件:

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

这是第一地捕获使用grep-H参数的文件名。然后使用sed删除除文件名外的所有内容。最后使用less来打开文件。

+3

为什么不''grep -l hello * .txt',并摆脱'sed'位? – twalberg

+0

@twalberg是的,它更好。不知道它。谢谢!! –

1

也许这可以帮助:

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

你有2个文件,而你正在寻找一个与字符串“富”在它。用你选择的命令更改cat打开文件。可以尝试viemacsnanopico ......(不,另一个战争的火焰!)

你可能想尝试不同的方法,如果有几个文件,包含你正在寻找串...只是觉得只有一个包含该字符串的文件。

相关问题