Подтвердить что ты не робот

Как удалить все строки, которые не начинаются с определенных символов?

Мне нужно выяснить регулярное выражение, чтобы удалить все строки, которые не начинаются с "+" или "-".

Я хочу напечатать бумажную копию большого файла diff, но он показывает 5 или около того строк до и после фактического разброса.

4b9b3361

Ответ 1

В VIM:

:g!/^[+-]/d

Вот английский перевод:

g lobally сделать что-то ко всем строкам, которые НЕ ! соответствуют регулярному выражению: начало строки ^, за которым следуют либо +, либо -, и что-то делать нужно d elete эти линии.

Ответ 2

sed -e '/^ [^ + -]/d'

Ответ 3

diff -u <some args here> | grep '^[+-]'

Или вы можете просто не создавать дополнительные строки вообще:

diff --unified=0 <some args>

Ответ 4

cat your_diff_file | sed '/^[+-]/!D'

Ответ 5

egrep "^[+-]" difffile >outputfile

Вместо удаления всего, что не соответствует, вы показываете только строки, которые соответствуют.:)

Ответ 6

Если вам нужно сделать что-то более сложное с точки зрения регулярных выражений, вы должны использовать этот сайт: http://txt2re.com/

он также предоставляет примеры кода для разных языков.