2016-08-29 15 views
0

こんにちは、私はファイルから行をgrepするために複数の条件を組み合わせようとしています。grep 1行目に文字があり、1行目にスティングがある場合

例:

ASTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
ASTRING2,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
ASTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
BSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
BSTRING2,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
BSTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
CSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
CSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
CSTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
. 
. 

ポジション1と第1の後の文字列「B1TEST」の「B」「」と文字列 『DIR3は、』第二「は、」存在した後、ファイルに行場合にのみ、私は出力したいです。

grepで可能ですか?それとも「より良い」コマンドがありますか?

私はあなたの入力が列ベースであれば、あなたがawkのを考慮することができます...

おかげ

+1

ヒント:

grep '^B[^,]*,B1TEST[^,]*,.*/dir3/' file 

は、それはあなたの出力を与える 'awkの条件1 &&条件2" file'。別のヒント: 'awk '$ 1 ==" A "'ファイル '。今ここで同様の質問がたくさんあるので、これについていくつかの調査をしてください。 – fedorqui

答えて

0

を似た何かを見つけることができませんでした。しかし、この要件のために、次のgrepラインは役立つはず:

BSTRING1,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
BSTRING2,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
BSTRING3,B1TEST_NAME,/shared/dir1/dir2/dir3/dir4 
+0

それは私の問題に完璧に動作しますありがとうございました!!! – crossing

関連する問題