#!/usr/bin/env bash
cat > example_file.txt <<EOL
group, , price
1, value, 3.21
1, 3.42, 4.11
1, 3.5, 1.22
2, 4.1, 9.2
2, 4.2, 2.11
EOL
Desejo substituir o valor na 1ª linha, 2ª coluna deste arquivo pelo valor na 2ª linha, 2ª coluna. Então, estou procurando que o awk retorne isso:
#!/usr/bin/env bash
cat > example_file.txt <<EOL
group, value, price
1, value, 3.21
1, 3.42, 4.11
1, 3.5, 1.22
2, 4.1, 9.2
2, 4.2, 2.11
EOL
Não consigo encontrar como referenciar a próxima linha no awk:
cat example_file.txt | awk -F, 'BEGIN { OFS = FS } { if (NR==1) $2 = ??}'
Você pode usar
getline
para obter a próxima linha de entrada esplit
dividi-la em uma matriz de campos usando o atualFS
:Se você quiser imprimir a linha "got" também, ela ainda estará
ln
após a divisão (para obter a ordem correta, também precisamos explicitamenteprint
primeiro e pular a impressão padrão usandonext
):