2016-08-17 19 views
0

我有一個包含以下文本的文件example.txt中:grep的文字:

[one]: bla bla bla onebla twobla 
[two]: hey heya noheya 
[onemore]: i got mad and etc 

我需要到grep和只顯示文本後[myword]:

試圖測試grep [myword] /tmp/example.txt | cut -d ':' -f 2

在它打印所有括號後各[myword],但我怎麼能得到的只有一個我只需要和不呢?

+0

沒有'[myword]'在輸入 – anubhava

+0

什麼是你想怎麼辦? – Chris

+0

我只需要打印某些括號後的測試。例如,我只想打印文本,在行'[一]:'而不是'後[二]:'或'[onemore]:'線,從而使輸出將是'唧唧歪歪onebla twobla'。如果我想以後'[onemore]打印所有:' - 正確的輸出應該是'我生氣的etc' – alya

回答

0

您可以剪切前半句[something]:,並使用

grep和sed中得到休息:

$ grep -w "\[onemore\]:" words.txt | sed 's/\[onemore\]://g' 
i got mad 

的grep和awk:

$ grep -w "\[onemore\]:" words.txt | awk -F: '{print $2}' 
i got mad 
+0

我需要得到這個輸出,例如:「grep的[一個更多]:words.txt」結果我需要得到:「我生氣了」 – alya

+0

@alya 無論是你的詞/短語將它添加到雙引號: 'grep的-o -w「我生氣了」 words.txt' 將導致到:'我生氣了' –

+0

@alya:對於最後的評論,我很抱歉,沒有看到你發佈的確切的grep輸入。 我編輯了我的答案,給你你想要的。 –

0

感謝所有!得到了從Unix & Linux的其他答案:

$ awk '/\[myword\]/{sub(/^[^]]*\]:[[:blank:]]*/,"");print}' example.txt

OR

$ awk '/\[myword\]/{sub(/^[^]]*\]:[[:blank:]]*/,"");print}' example.txt