Como ler apenas a segunda última linha de um arquivo

5

Eu tenho um cliente que atualiza / escreve em myfile.csv arbitrariamente.

Eu escrevi o seguinte código, deixei o snippet do MySQL:

while true
do
  awk_variables_value_array='tail -n2 myfile.csv | awk -F, '$7 == "status" {print $4, $5, $10 }''
  var1=${awk_variables_value_array[0]}
  var2=${awk_variables_value_array[1]}
  var3=${awk_variables_value_array[2]}

  if[ "var3" -gt "0" ]
  --MYSQL SNIPPET IS--
  fi
done

Q: tail -n2 lê as últimas 2 linhas, como posso alterá-lo? É a segunda última linha

o arquivo:

onde n é a última linha do arquivo

line 1
line 2
line 3
line 4
....
line n-2
line n-1
line n

rendimento atual da saída:

line n-1
line n 

Eu gostaria que a saída fosse:

line n-1
    
por 3kstc 14.03.2015 / 02:55

2 respostas

9

Que tal tail -n2 myfile.csv | head -n1 | awk .... ?

    
por 14.03.2015 / 03:14
4
sed 'x;$!d' <infile

Isso deve funcionar para você.

    
por 14.03.2015 / 15:35