LINUX.ORG.RU
решено ФорумAdmin

Помогите с регулярными выражениями?

 ,


0

1

Есть строка вида:

var="512249656144711-83304457808 (имя файла: \"20201115764705.lic\")"

Хочу получить часть 512249656144711-83304457808

Думаю в таком выражении:

LicNUM="$(echo "$var" | sed -nr "s/???????/p")"

Помогите пожалуйста, на bash



Последнее исправление: Shulman (всего исправлений: 1)

echo $var | sed -r 's/(\S+).+/\1/'
anonymous
()
echo "$var" | grep -o '^\S*'
anonymous
()

У тебя вопрос по sed, а не по bash, в bash «удалить всё после первого пробела» будет например так:

LicNUM=${var%% *}
anonymous
()
echo "$var" | cut -d' ' -f1

не благадари

anonymous
()
[[ $var =~ $pattern ]]
LicNUM=BASH_REMATCH[0]
anonymous
()
$ var="512249656144711-83304457808 (имя файла: \"20201115764705.lic\")"
$ read lic rest < <(printf "%s\n" "$var")
$ echo $lic
512249656144711-83304457808
slowpony ★★★★★
()

Ура, заработало!

Shulman
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.