파일에서 줄 삭제

파일에서 줄 삭제

다음 형식으로 데이터가 존재하는 파일이 있습니다.

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

따라서 여기서 02,04...는 시간을 나타내고 123,321...은 임의의 값을 나타냅니다.

이 파일에서 처음 두 값이 가져올 현재 시간보다 작은 모든 행을 삭제하고 싶습니다 date +'%H'.

현재 시간이 10시라고 가정하면 10보다 작은 처음 두 시간이 포함된 행을 삭제하고 싶습니다.

02|123
04|321
08|453
09|364
01|789

답변1

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

관련 정보