Excluir linhas de um arquivo

3

Eu tenho um arquivo onde os dados estão presentes no formato abaixo:

cat file.txt
02|123
04|321
08|453
09|364
01|789
23|765

então aqui 02,04 ... representa Hora e 123,321 ... representa algum valor aleatório.

Eu quero excluir todas as linhas desse arquivo em que o primeiro valor dois é menor que a hora atual, que será obtida de date +'%H' .

Suponha que a hora atual seja 10, então eu quero excluir as linhas contendo as duas primeiras menos de 10, ou seja,

02|123
04|321
08|453
09|364
01|789
    
por Vineet Sharma 10.03.2016 / 19:14

1 resposta

6
#!/bin/bash
HOUR='date +%H'
awk -v hour=$HOUR -F"|" '{if($1 >= hour)print}' file.txt > newfile.txt
mv newfile.txt file.txt
    
por 10.03.2016 / 19:39