Вставлять значения в новый столбец каждую n-ю строку

Возможно, вы захотите изучить программу под названием USBGuard . Он разработан специально для обработки этого. К сожалению, он не упакован предварительно -для многих дистрибутивов, но его довольно легко собрать локально, и у вас, вероятно, уже есть большинство, если не все зависимости, установленные в рассматриваемых системах.

Пользовательское решение также возможно, но, по иронии судьбы, лучшим примером того, как это сделать, вероятно, также является USBGuard.

0
07.07.2019, 22:20
2 ответа

Пусть файл будет:

1
2
3
4
5
6

Вы можете использовать:

awk  'BEGIN { OFS = " "; a["1"]="Apple";a["2"]="Orange";a["3"]="Banana"; } {print $0,a[int(NR/2 + NR%2)]}' file

Вы получите:

1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana
0
28.01.2020, 03:28

Немного хакерский, но вы можете прочитать новый фрукт из стандартного ввода, используя getline, на основе текущего номера записи:

printf 'Apple\nOrange\nBanana' | 
    awk -v n=2 'NR%n == 1 {getline x < "/dev/stdin" } {print $0, x}' file.txt
1 Apple
2 Apple
3 Orange
4 Orange
5 Banana
6 Banana
0
28.01.2020, 03:28

Теги

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