Укажите «-» в шаблоне sed - PullRequest
       14

Укажите «-» в шаблоне sed

0 голосов
/ 07 сентября 2011

Я пытаюсь найти символ «-» в строке, но этот символ используется для указания диапазона.Могу ли я получить пример шаблона sed, который будет содержать символ «-»?

Кроме того, было бы быстрее, если бы я мог использовать шаблон, который включает все символы, кроме пробела и табуляции.

Ответы [ 3 ]

6 голосов
/ 07 сентября 2011

'-' указывает диапазон только в квадратных скобках.

Например, это:

sed -n '/-/p'

печатает все строки, содержащие символ '-'. Если вы хотите, чтобы '-' представлял себя в квадратных скобках, поместите его сразу после [ или перед ]. Это:

sed -n '/[-x]/p'

печатает все строки, содержащие '-' или 'x'.

Этот шаблон: [^ <tab>]

соответствует всем символам, кроме пробела и табуляции (обратите внимание, что вам нужен буквальный символ табуляции, а не "<tab>").

2 голосов
/ 07 сентября 2011

Если вы хотите найти тире, укажите его вне класса символов:

/-/

Если вы хотите включить его в класс символов, сделайте его первым или последним символом:

/[-a-z]/
/[a-z-]/

Если вы хотите найти что-либо, кроме пробела или табуляции (или новой строки), то:

/[^ \t]/

, где, спешу добавить, '\t' - буквальный символ табуляцииа не обратный слеш-т.

0 голосов
/ 07 сентября 2011

найти "-" в файле

 awk '/-/' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...