Bash. Как разбить строку на слова?

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
_petya_
Сообщения: 53

Bash. Как разбить строку на слова?

Сообщение _petya_ »

string=$(ps -ef | grep SomeWord | tail -1)

После этого нужно получить первое слово из переменной string (то есть значение pid).
pid= ???
В перспективе понадобится извлекать из строки и другие значения. Как разбить строку на слова? Идеально было бы создать массив с элементами-словами.
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: Bash. Как разбить строку на слова?

Сообщение Mage-Warrior »

Код: Выделить всё

string1=$(ps -ef | grep SomeWord | tail -1)
array1=( $string )  # разбивает строку и помещает в массив
echo ${#array[@]} # посмотрим-ка, сколько аргументов!
echo ${array[1]} # А вот и pid!
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Bash. Как разбить строку на слова?

Сообщение watashiwa_daredeska »

Можно так:

Код: Выделить всё

ps -ef |grep Something |grep -v grep |tail -n 1 |while read _UID _PID _PPID _C _STIME _TTY _TIME _CMD; do
  echo uid=$_UID
  echo pid=$_PID
  echo ppid=$_PPID
  echo c=$_C
  echo stime=$_STIME
  echo tty=$_TTY
  echo time=$_TIME
  echo cmd=$_CMD
done
Спасибо сказали:
Ответить