仅在[word]之后才发送grep文本:

时间:2016-08-17 16:46:07

标签: linux bash shell grep

我有一个文件example.txt,其中包含以下文字:

[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]上,它会在括号后打印所有内容,但我怎样才能只获得我需要的而不是全部?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

感谢大家!从Unix&获得了答案Linux操作系统:

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

OR

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