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


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

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

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

Оффлайн Vail

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

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

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Не использовать awk вообще.
Код: (bash) [Выделить]
resedueS=$STOPFILES

S=${resedueS%%@*} # первый элемент
resedueS=${resedueS#*@} # остаток строки без 1-го элемента
Код: (bash) [Выделить]
IFS=@ read -a arrS <<<"$STOPFILES" # считываем в массив, доступ к которому по индексу ${arrS[inner]}Не гуд строки обрабатывать так, но на крайний случай
Код: (bash) [Выделить]
echo $STOPFILES | cut -d @ -f $innerИли наоборот весь скрипт сделать на awk.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Vail

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

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

Оффлайн Azure

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

Оффлайн Vail

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

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

 

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