Вы можете избежать обратных кавычек, используя обратную косую черту, как показано ниже:
echo "\`wc -l *\`"
Предполагая, что когда во втором столбце закончатся значения, в этом столбце больше не будет значений,
awk '{ if ($2 == "") $2 = saved[(i++)%n]; else saved[n++] = $2 }; 1' file
Это считывает значения второго столбца в массив saved
с индексом 0
, содержащим первое значение и увеличивающим n
каждый раз. Когда во втором столбце заканчиваются значения, этот массив используется для циклического заполнения столбца, используя i
в качестве счетчика и возвращая его значение обратно к нулю, кратному n
, с помощью оператора модуля.
Тестирование:
$ cat file
A 1
B 2
C
D
E
$ awk '{ if ($2 == "") $2 = saved[(i++)%n]; else saved[n++] = $2 }; 1' file
A 1
B 2
C 1
D 2
E 1
$ cat otherfile
A apple
B bumblebee
C sunshine
D
E
F
G
H
$ awk '{ if ($2 == "") $2 = saved[(i++)%n]; else saved[n++] = $2 }; 1' otherfile
A apple
B bumblebee
C sunshine
D apple
E bumblebee
F sunshine
G apple
H bumblebee