2014-03-06 38 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 ......(不,另一個戰爭的火焰!)

你可能想嘗試不同的方法,如果有幾個文件,包含你正在尋找串...只是覺得只有一個包含該字符串的文件。

相關問題