【发布时间】:2019-03-07 23:51:26
【问题描述】:
我想要一个 unix 命令(我将在 ControlM 作业中调用),它可以更改我的 .csv 文件的第一列(不是标题行)的值,以及前一天的日期(预期格式:@ 987654321@).
我尝试了很多命令,但没有一个是我想要的:
tmp=$(mktemp) && awk -F\| -v val=`date -d yesterday +%F` 'NR>1 {gsub($1,val)}' file.csv > "$tmp" && mv "$tmp" file.csv
或:
awk -F\| -v val=`date -d yesterday +%F` '{gsub($1, val)}1' file.csv
甚至尝试过 gensub 但不起作用。
我想要的示例: 输入:
VALUE_DATE;TRADE_DATE;DESCR1;DESCR2
2019-03-05;2017-11-15;BRIDGE;HELLO
2019-03-05;2018-03-17;WORK;DATA
我想要的输出(今天是 2019-03-07):
VALUE_DATE;TRADE_DATE;DESCR1;DESCR2
2019-03-06;2017-11-15;BRIDGE;HELLO
2019-03-06;2018-03-17;WORK;DATA
请您帮忙并给我一些应该有效的命令示例,我没有找到解决方案。
非常感谢
【问题讨论】:
-
欢迎来到 SO,建议将您的示例/代码包装在 CODE TAGS 中,您可以在编辑帖子时使用
{}按钮来做到这一点。感谢 jxc 为这个做了它但请记下以后的帖子。