Я пытаюсь получить значение, например
"909,999"
С помощью этого (пример заменяет его ничем):
sed 's/["][0-9]+[,][0-9]+["]//g'
Но это не работает.
решение1
Если вы хотите заменить шаблон, вы можете использовать sed -E
или экранировать +
символы, как предлагает @Kusalananda:
$ printf '"123.456"\n"909,999"\n"100"\n' | sed -E 's/"[0-9]+,[0-9]+"//g'
"123.456"
"100"
или
$ printf '"123.456"\n"909,999"\n"100"\n' | sed 's/"[0-9]\+,[0-9]\+"//g'
"123.456"
"100"
Обратите внимание, что g
в этом примере не требуется, поскольку в каждой строке используется только одна замена.
Если вы хотите удалить соответствующие строки, вы можете использовать d
для удаления шаблонного пространства:
$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"