grepは1つの文字列と一致しますが、他の文字列と一致します。

grepは1つの文字列と一致しますが、他の文字列と一致します。

(ブランチを作成する代わりに)svn grnから変更されたファイルをインポートする必要があります。そのために私はこれを試しています:

ケース1:

echo "   M /branches/Integration_release_23_branch/build/scripts/include/test.h" | \
grep -E "   . /[trunk/,branches].*[^from\ ]"

これは一致する必要があり、動作しています。

ケース2:

echo "   A /branches/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)" |  grep -E "   . /[trunk/,branches].*[^from\ ]"

(from一致しないでください。 (または最後に確認する必要があります))

例外文字列が正しく機能しません。

答え1

次の入力ファイルが与えられた場合:

$ cat ip.txt 
   M /branches/Integration_release_23_branch/build/scripts/include/test.h
   A /branches/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)
   dummy line 1
   M /trunk/Integration_release_23_branch/build/scripts/include/test.h
   dummy line 2
   A /trunk/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)

|このパターンまたは低パターンを検索するために使用されます。

$ grep -E 'trunk|branches' ip.txt 
   M /branches/Integration_release_23_branch/build/scripts/include/test.h
   A /branches/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)
   M /trunk/Integration_release_23_branch/build/scripts/include/test.h
   A /trunk/Integration_release_23_branch (from /branches/Integration_release_22_branch:34500)

除外オプションを使用して結果を別のgrepコマンドに送信できます。from-v

$ grep -E 'trunk|branches' ip.txt | grep -v 'from '
   M /branches/Integration_release_23_branch/build/scripts/include/test.h
   M /trunk/Integration_release_23_branch/build/scripts/include/test.h

関連情報