У меня есть текстовые файлы, которые являются результатом различных этапов обработки, поэтому в зависимости от порядка шагов порядок столбцов и длина каждой строки меняются от одного файла к следующему.
поэтому file1 будет:
moo 100.35 blah 9 85 0.0038
moo 93.8 bluu 10 85 0.0042
и file2 будет:
125.2 129.3 moo 0.23
123.5 125.3 moo 0.23
и я хотел бы изменить его на:
1_horatio 100.35 blah 9 85 0.0038
2_horatio 93.8 bluu 10 85 0.0042
и
125.2 129.3 1_clarence 0.23
123.5 125.3 2_clarence 0.23
где число в новом имени для moo увеличивается для каждой строки. Имя является входной переменной.
вот что я пытался до сих пор:
newnam=$1
awk -v nnam=$newnam 'BEGIN{ count=1 } {imgn=count"_"nam; print imgn,$2,$3,$4 count++ }' $2 > $3
который мне нужно изменить на:
newnam=$1
awk -v nam=$newnam 'BEGIN{ count=1 } {imgn=count"_"nam; print $1,$2,imgn,$4 count++ }' $2 > $3
Мне бы хотелось иметь возможность указывать номер столбца в качестве переменной, и мне не нужно беспокоиться о количестве столбцов. Может быть до 50 столбцов, до миллиона строк.
Есть ли способ сделать это в awk? Или bash с awk?