sed + отрезок перед разделителем «;»


1

как выполнить sed для того, чтобы напечатать строку до ";" персонаж

    echo "NUMBER   =   3247  FULL DUPLEX ; speed=343 434 " | sed .....

нужен следующий вывод

НОМЕР = 3247 ПОЛНЫЙ ДУПЛЕКС

Ответы:


1

Почему бы тебе не использовать awk для этого? то есть

echo "Number = 3247; speed = 343 434" |   awk {'print $ 1'}

И если вам действительно нужно "впереди, используйте

echo "Number = 3247; speed = 343 434" | awk {'print "\" "$ 1'}

РЕДАКТИРОВАТЬ: После обратной связи (см. Комментарии ниже), здесь правильная версия с sed:

echo "NUMBER = 3247 FULL DUPLEX;   скорость = 343 434 "| sed 's /\;.*// g'


не хорошо, потому что число = 3247 (у меня есть пробелы)
jennifer

посмотрите пожалуйста мое обновление в вопросе
jennifer

ОК, ты прав. Как насчет sed 's \; . * // г 'тогда?
pgruetter

echo "NUMBER = 3247 FULL DUPLEX; скорость = 343 434" | sed 's / \; . * // g '(нужно добавить "/" после "s"
jennifer

Вы можете исправить свой ответ в соответствии с правильным замечанием, поэтому я буду голосовать за вас
jennifer

1

использование awk с -F чтобы указать разделитель полей:

echo "NUMBER   =   3247  FULL DUPLEX ; speed=343 434 " | awk -F\; '{print $1;}'

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.