我有一个文件,其中数据以以下格式存在:
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