Я ищу grep, чтобы показать все символы, которые не начинаются с цифр. Я сделал что-то вроде этого:
grep -v '^[1-2]*[a-zA-Z]?' -o
но это не работает. Есть ли у вас какие-либо идеи для некоторого рег опыта?
grep
regular-expression
Павел Яворовский
источник
источник
-v
с-o
вызывающимgrep
продуктом не выводится.grep
используются основные регулярные выражения. Это означает, что с вами?
обращаются как с буквальным знаком вопроса. Либо экранируйте знак вопроса\?
, либо используйте-E
опцию дляextended
регулярных выражений, в этом случае?
это символ шаблона.Ответы:
grep -v '^[0-9]'
Выведет все строки, которые не (
-v
) совпадают со строками, начинающимися^
с числа[0-9]
Например
или если вы хотите удалить все слова, которые начинаются с цифры
или с ярлыками и утверждениями
Например
источник
\> Matches the null string at the end of a word. This is equivalent to
[[:>:]] '. `Это зависит от того, как вы определяете строку (например, считаете ли вы знаки препинания в строке или нет). Тем не менее, вы можете начать с чего-то вроде
источник
Чтобы удалить все слова из строки, начинающейся с цифры,
sed
вы можете сделать:... или, если вам нужны только слова, которые не начинаются с цифр, напечатанных в отдельной строке:
... вышесказанное должно быть довольно хорошо. Вы захотите адаптировать
\n
электронныйy///
перевод для делителей, которые вы считаете актуальными. И, вsed
зависимости от реализации, вам может потребоваться фактическая замена<tab>
вместо\t
обратной косой черты.источник
!
перед свопом'"'
, но если вы используете,bash
вы можете захотетьset +H
или еслиzsh
тогдаset -K
. На мой взгляд, любое цитируемое!
расширение - это безумие. Вы также можете использовать heredocs, например,"${0#-}" <<\CMD\nyour cmd strings\nCMD\n
чтобы получить сценарий поведения в интерактивных оболочках."${0#-}" <<...
совет!"${0#-}" -s -- arg list <<\CMD\n...
вы также можете установить позиционные параметры при вызове. Использование"$@"
или*
часто полезно для меня вместоarg list
. А с нимln -s "$(command -v "${0#-}")" /tmp/new_name; cd tmp; new_name <<\CMD\n...
можно получить новый$0
и еще справиться с stdin.