从文件中删除行

从文件中删除行

我有一个文件,其中数据以以下格式存在:

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

相关内容