Помощь с функцией AWK

У меня проблемы с командой AWK. Когда я использовал этот код:

$ awk '{a[NR]=$1} END {for (i=0;i<NR;i++) {B=a[i+1];A=a[i];C=(BA);D=int(C/16)} {for (j=0;j<=D;j++) {if(C!=16) {print t=A;A=A+16;B} else {print A}} }}' 19.txt 

Мой входной файл «19.txt»:

 1510 1526 1542 1558 1614 1630 1646 1702 1802 

Я понял это:

 1702 1718 1734 1750 1766 1782 1798 

Мой код использует только разницу в последних строках, почему? Я хочу заполнить пробелы между последовательными линиями, где разное между строками равно 16, похожее на это:

 1510 1526 1542 1558 ---- 1574 1590 1606 ---- 1614 1630 1646 ---- 1662 1678 1694 ---- 1702 ---- 1718 1734 1750 1766 1782 1798 ---- 1802 

  • sed / awk заменяет определенный шаблон под другим шаблоном
  • Присоедините два файла с соответствующими столбцами
  • Как распечатать определенное условие столбца с помощью awk?
  • использование awk для распаковки файлов в каталоге
  • Конкатенация последовательностей под заголовком
  • Как найти, на каком устройстве находится файл (и использовать его в скрипте)?
  • замените символ из строки, которая находится между первым и вторым поиском, используя sed или awk
  • строки обработки текста столбцам для блока
  • One Solution collect form web for “Помощь с функцией AWK”

    Это дает результат, который вы ищете, и ему не нужно хранить весь файл в памяти.

     awk -v diff=16 ' NR>1 && $1-prev > diff { print "----" while ($1-prev > diff) { prev += diff print prev } print "----" } { print prev = $1 } ' 19.txt 

    Спросите меня, есть ли что-нибудь, что вы не понимаете.

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