linux - 如果第一个单元格的值满足条件,如何从 CSV 中删除一行?
问题描述
我有一个包含时间和任务的 CSV 文件:
0800,take out trash
1000,read a book
1230,have lunch
1300,buy groceries
1600,meet with friends
2000,go to sleep
我想创建一个脚本,在运行时,它将当前时间与第一个字段中的时间进行比较。如果现在时间大于此字段,则应删除该行。
我不知道从哪里开始,而且我不是一个程序员。
解决方案
这将完成这项工作
#!/usr/bin/env bash
date=$(date +%H%M)
while read line; do
if [ $(echo $line | cut -d ',' -f1) -gt $date ]; then
echo $line
fi
done < $1
测试:
$ cat foo
10,a
20,b
2010,b
2020,b
2110,b
$ date
Di 5 Feb 2019 20:18:46 CET
$ ./script.sh foo
2020,b
2110,b
但是你必须稍微改进一下 bashscript,让它更健壮!我的代码是“概念证明”
推荐阅读
- node.js - 从我的数据库中提取数据并将其(ById)填充到我的 Vue 视图(使用 Axios)时出现问题。后端是 Node/Express
- javascript - 如何获取命令发送到的频道名称
- python - driver.find_elements_by_xpath 随机失败
- android - 使用 Observable Boolean 设置 android 视图的可见性
- firebase - 保护多个用户需要写入的 firebase 表
- r - 跨两个一致数据帧的成对图?
- python - 如何循环分组数据框
- spring - Oauth2 - java.lang.IllegalStateException: UserDetailsService 是必需的。带刷新令牌
- c# - C# Revit API - 如何从 autocad 文件中提取信息
- asp.net - 如何将模型和附加参数从视图传递到控制器