Extraia dois valores de arquivos

Extraia dois valores de arquivos

Gostaria de extrair dois valores de uma série de arquivos .txt.

Estas são as duas últimas linhas (linha 49 e linha 50) do meu arquivo .txt

1  13593 3434 2.2585  0.9
2   3333  333 3.7118  0.8

E quero extrair a 4ª coluna (ex. 2.2585 e 3.7118) da linha 49 e da linha 50 de cada arquivo .txt.

Existe uma forma de fazer isso?

Muito obrigado

Responder1

Você pode usar awkpara processamento de texto. A instrução awk a seguir lê o arquivo 'input' e imprime o valor na coluna 4 das linhas 49 e 50.

awk 'FNR==49 || FNR==50 {imprimir $4}' entrada

Agora, para ler todos os arquivos no diretório (assumindo que todos os arquivos estão no mesmo diretório), você pode executar um loop for para ler os nomes dos arquivos. Então a declaração final será como -

para arquivo em *; faça awk 'FNR==49 || FNR==50 {print $4}' "$arquivo"; feito

E como trososmencionado, os arquivos de entrada são apenas .txtformatados. Então podemos fazer

awk 'FNR==49 || FNR==50 {imprimir $4}' *.txt

informação relacionada