Как добавить числа в элементы массива 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 

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

  • Использование AWK для удаления результата линии и вывода
  • Regex to Cisco Interface
  • Как заменить одиночное или двойное пространство в текстовом файле, когда между кавычками
  • Печать текста между двумя шаблонами, не содержащими конкретного слова
  • Awk Использование NR для вывода номера итерации
  • Является ли поведение AWK END, чтобы последняя строка загружалась в $ 0 на странице руководства?
  • Когда интерпретировать awk как команду или язык программирования?
  • таинственный скрипт awk соединяет строки
  • One Solution collect form web for “Как добавить числа в элементы массива awk?”

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

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.