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

Запишите функцию, которая переводит число как 12 345,67 к "двенадцати тысячам тремстам сорока пяти долларам и шестидесяти семи центам".

30
задан mager 12 November 2009 в 20:47
поделиться

6 ответов

В VIM:

: g! / ^ [+ -] / d

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

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

57
ответ дан 27 November 2019 в 23:47
поделиться

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

1
ответ дан 27 November 2019 в 23:47
поделиться

diff -u <здесь несколько аргументов> | grep '^ [+ -]'

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

diff --unified = 0

0
ответ дан 27 November 2019 в 23:47
поделиться
cat your_diff_file | sed '/^[+-]/!D'
0
ответ дан 27 November 2019 в 23:47
поделиться

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

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

0
ответ дан 27 November 2019 в 23:47
поделиться
egrep "^[+-]" difffile >outputfile

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

0
ответ дан 27 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: