2016-08-17 1 views
0

私は、次のテキストを含むファイル、EXAMPLE.SQLを持っている:Grepのテキスト:

私はgrepすると [myword]:

が試した後grep [myword] /tmp/example.txt | cut -d ':' -f 2をテストすることをテキストのみを表示する必要が

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

それぞれ[myword]で、角括弧の後にすべてが表示されますが、どのようにして必要なものだけを得ることができますか?

+0

をそこには、 '[myword]'入力 – anubhava

+0

に何をやろうとしていませんか? – Chris

+0

特定の角括弧の後のテストだけを出力する必要があります。たとえば、 '[one]:'行にあるテキストだけを出力し、 '[two]:'や '[onemore]:'行の後には出力しないようにして、出力が 'bla bla bla onebla twobla'になるようにします。 '' [onemore]: 'の後にすべてを出力したい場合、正しい出力は' '私は気違いなどあります ' – 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