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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн Vail

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
участок скрипта:
в переменной $STOPFILES строка типа A@B@C@D
Код: Bash
  1.                 while [ $inner -lt $M ]; do
  2.                         let "inner += 1"
  3.                         S=$(echo $STOPFILES | awk -F@ '{print $2}')
  4.                 done

Как в awk -F@ '{print $2}' вместо $2 засунуть $inner, чтобы при каждом проходе получать следующий элемент строки?
« Последнее редактирование: 26 Май 2017, 12:24:52 от Azure »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Не использовать awk вообще.
Код: Bash
  1. resedueS=$STOPFILES
  2. S=${resedueS%%@*} # первый элемент
  3. resedueS=${resedueS#*@} # остаток строки без 1-го элемента
Код: Bash
  1. IFS=@ read -a arrS <<<"$STOPFILES" # считываем в массив, доступ к которому по индексу ${arrS[inner]}
Не гуд строки обрабатывать так, но на крайний случай
Код: Bash
  1. echo $STOPFILES | cut -d @ -f $inner
Или наоборот весь скрипт сделать на awk.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Vail

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Как же многому еще мне учиться!  :o

Код: Bash
echo $STOPFILES | cut -d @ -f $inner
Похоже это подойдет! Спасибо. Проверю - отпишусь.

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Vail, подойдут все варианты, из которых Вы выбрали самый «кривой»…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Vail

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Возможно самый кривой. Но по пониманию - самый простой для меня. Второй на втором месте, возможно его использую. А первый пока - китайская грамота. Пойду с ним разбираться.

Пользователь добавил сообщение 30 Май 2017, 05:12:45:
Вариант с массивом - очень понравился! Просто и лаконично. Спасибо большое.
« Последнее редактирование: 30 Май 2017, 05:12:45 от Vail »

 

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