1

как выполнить с помощью sed для печати строки до ";" персонаж

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

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

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

2 ответа2

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'

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .