Você está bem perto. Você não precisa da vírgula ou do $ antes de sua variável. Experimente:
awk '{if (NF == 4) {print $0; name=$1} else {print name$0}}'
Eu tenho um arquivo com uma lista de informações. Cada linha tem 12 ou 13 campos. Por exemplo, vou usar um arquivo com 3 e 4 campos.
e.g. myfile.txt
user password location date
john passwd1 new_york today
passwd2 london yesterday
jeff passwd3 new_york tomorrow
Estou procurando uma maneira que leve o nome de johns e copie-o para a próxima linha no espaço em branco.
até agora estou tentando algo como:
Awk '{{if(NF==4) print $0; name=$1}; if(NF==3) print $name,$0}' ./myfile.txt >> ./my_editedfile.txt.
Toda vez que eu tento, no entanto, ele imprime o literal $ 1, nada ou o primeiro campo da próxima linha duas vezes. ou seja, a linha dois será parecida com a seguinte:
$1 passwd2 london yesterday
passwd2 london yesterday
passwd2 passwd2 london yesterday
Alguém pode ajudar a definir uma variável em uma linha e usá-la para imprimir na seguinte?
Tags awk