Замена выражением sed [закрыто]

Una variante sh, y eliminaría los problemas asociados con ${var,,}que usa la configuración regional para convertir cadenas (minúsculas Ino es ipara todos, por ejemplo):

#! /bin/sh -
while true; do
  printf %s "Please enter your choice (stringA or stringB): "
  IFS= read -r result || exit # exit on EOF
  case $result in
    ([sS][tT][rR][iI][nN][gG][aAbB]) break
  esac
  echo >&2 Invalid choice.
done
-1
07.06.2019, 02:46
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"
1
28.01.2020, 05:09

Теги

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