Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: bash - получить первое слово в строке  (Прочитано 16158 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Señor_Gaga

  • Автор темы
  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
К примеру имеется переменная $STR = "слово1 далее некоторый текст"
Как выделить слово1 и присвоить его переменной FIRST_WORD ?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: bash - получить первое слово в строке
« Ответ #1 : 20 Ноября 2012, 21:53:19 »
echo "слово0 слово1 слово2" | sed 's/слово1/FIRST_WORD/g'
Wars ~.o

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1695
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: bash - получить первое слово в строке
« Ответ #2 : 20 Ноября 2012, 22:10:58 »
echo "слово0 слово1 слово2" | sed 's/слово1/FIRST_WORD/g'
Ерунда какая-то...

Шляпа, делай так:
FIRST_WORD=`echo ${STR} | awk '{print $1}'`Результат:
protopopulus@sofocl:~$ STR='qwe qwee qweeee'
protopopulus@sofocl:~$ echo $STR
qwe qwee qweeee
protopopulus@sofocl:~$ FIRST_WORD=`echo ${STR} | awk '{print $1}'`
protopopulus@sofocl:~$ echo $FIRST_WORD
qwe
protopopulus@sofocl:~$
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн Señor_Gaga

  • Автор темы
  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: bash - получить первое слово в строке
« Ответ #3 : 21 Ноября 2012, 08:34:02 »
Спасибо.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: bash - получить первое слово в строке
« Ответ #4 : 21 Ноября 2012, 08:41:06 »
Ещё пара вариантов:
Код: (bash) [Выделить]
$ STR="слово1 далее некоторый текст" ; echo "$STR" | cut -d' ' -f1
слово1

$ STR="слово1 далее некоторый текст" ; echo "${STR%% *}"
слово1

 

Страница сгенерирована за 0.029 секунд. Запросов: 25.