Как добавить числа в элементы массива awk?

Если у меня есть следующая переменная bash:

$ echo "${pos}" 201 719 744 205 354 

… следующее производит …

 !#bin/bash ( IFS=: awk -v str2="$pos" -v sep="[$IFS]" ' BEGIN { m = split(str2, b, sep) for (i=1; i<=m; ++i) {print b[i]} } ' ) ----------------- $ ./myscript.sh 201 719 744 205 354 

… но потом делать …

 ( IFS=: awk -v str2="$pos" -v sep="[$IFS]" ' BEGIN { m = split(str2, b, sep) for (i=1; i<=m; ++i) {print b[i]+10} } ' ) ------ ./myscript.sh 211 

… поэтому добавление работает, но не печатает результаты для всех элементов. Почему нет?

One Solution collect form web for “Как добавить числа в элементы массива awk?”

Это ваш IFS =: не установлен правильно. Таким образом, split () не заполняет массив значениями, но заполняет его одним значением str2, поэтому в цикле for вы печатаете b [i], но на самом деле вы печатаете один раз b [1], который является вашей всей str2, и потому что он имеет новые строки, которые, по вашему мнению, печатают элементы массива b, но если вы проверите m для значения retrn для split (), это 1. Удалите IFS =: и ваш скрипт должен работать правильно.

  • Как накапливать некоторые значения в столбце на основе информации в другом столбце из того же файла данных?
  • Соответствие гексадецималов с gawk
  • Как удалить первый экземпляр чего-либо в файле с awk?
  • Переименуйте имена файлов MP3 в шаблон
  • Несколько совпадений и печати в одной строке
  • Как вычесть строки, наоборот, только если больше, чем предыдущая строка
  • Как найти слово и удалить его со следующей строкой
  • счетчик подсчетов netstat
  • Копирование слов из строк и добавление к строкам в другом файле
  • Заменить значения в определенном разделе в файле
  • Как напечатать соответствующее значение разделителя полей с рисунком в AWK
  • Как рассчитать средние запросы за секунды, используя awk или sed в журналах Apache
  • Linux и Unix - лучшая ОС в мире.