「+」または「-」で始まらないすべての行を削除する正規表現を見つける必要があります。
大きな差分ファイルの紙のコピーを印刷したいのですが、実際の差分の前後に 5 行ほど表示されます。
「+」または「-」で始まらないすべての行を削除する正規表現を見つける必要があります。
大きな差分ファイルの紙のコピーを印刷したいのですが、実際の差分の前後に 5 行ほど表示されます。
VIM で:
:g!/^[+-]/d
英訳は次のとおりです。
g
!
正規表現に一致しないすべての行に対して局所的に何かを行います: 行頭の後にorの^
いずれかが続き、それらの行を削除する必要があります。+
-
d
sed -e '/^[^+-]/d'
diff -u <some args here> | grep '^[+-]'
または、余分な行をまったく生成できない可能性があります。
diff --unified=0 <some args>
cat your_diff_file | sed '/^[+-]/!D'
egrep "^[+-]" difffile >outputfile
一致しないものをすべて削除する代わりに、一致する行のみを表示します。:)
正規表現に関してもっと複雑なことをする必要がある場合は、次のサイトを使用する必要があります: http://txt2re.com/
また、さまざまな言語のコード例も提供します。
%!grep -Ev '^[+-]'
現在のファイルに対してインラインで実行され:v
、大きなファイルの場合よりもかなり高速になる可能性があります。
Vim 7.4、Ubuntu 14.04、1M 行のログ ファイルでテスト済み。