Замена повторяющейся фразы увеличивающимися цифрами

until [ "$SIG" != "2" ]; do
   command param1 param2
   SIG=$?
done

Это будет запускать команду каждый раз, пока она не вернет число, отличное от 2.

-1
31.01.2021, 01:15
4 ответа

Если вы хотите, чтобы строки ввода были перенумерованы последовательно, вы можете использовать номер записи awk , NR, например.

awk '{printf "%s%4s%4d\n", $1, $2, NR}' input
2
18.03.2021, 22:33

Это может быть вариант сawk:

$ awk '$3 = $3+i++' file
K X 1
K X 2
K X 3
K X 4
K X 5
K X 6
K X 7
K X 8
K X 9
K X 10

4
18.03.2021, 22:33

Мое решение Bash (не проверено, и оно предполагает, что K и X не содержат пробелов):

i=1
while read a b c
do 
  echo $a $b $i
  i=$((i+1))
done < inputfile

Правильное форматирование вывода оставлено читателю в качестве упражнения.

0
18.03.2021, 22:33
$ awk '$3=NR' file
K X 1
K X 2
K X 3
K X 4
K X 5
K X 6
K X 7
K X 8
K X 9
K X 10

Вперёд!:-)

0
18.03.2021, 22:33

Теги

Похожие вопросы