【发布时间】:2017-03-03 03:07:42
【问题描述】:
我正在尝试处理一个脚本,它有一个与日期和一些字符串连接的列。我想对日期部分进行子串化并与今天的日期进行比较。如果它比今天早,我想用今天的日期替换。这是一个例子。
cat test.txt
aaaa RR 242 644126 20161030O00001.0000
bbbb RR 242 644126 20161225O00001.0000
aaaa RR 242 644126 20161012O00001.0000
aaaa RR 242 644126 20170129O00001.0000
aaaa RR 242 644126 20170326O00001.0000
aaaa RR 242 644126 20170430O00001.0000
aaaa RR 242 644126 20161015O00001.0000
我希望通过更改第 3 行和第 7 列的日期戳来获得如下输出。请帮助。如果可能的话,我正在寻找使其工作的单个命令。
aaaa RR 242 644126 20161030O00001.0000
bbbb RR 242 644126 20161225O00001.0000
aaaa RR 242 644126 20161020000001.0000
aaaa RR 242 644126 20170129O00001.0000
aaaa RR 242 644126 20170326O00001.0000
aaaa RR 242 644126 20170430O00001.0000
aaaa RR 242 644126 20161020000001.0000
【问题讨论】:
-
所以,假设今天的日期是 2016-10-20,如果数据的日期部分对应的日期早于 2016-10-20,您希望将日期替换为 2016-10 -20,但如果是 2016 年或 2017 年或以后的未来日期,不要管它?日期可能是 2015 年或更早?日期字段后面的字母是否总是
O就像您的示例一样? -
我试图挽救格式并删除示例中每一行之间的空行。我想星号实际上也不是数据的一部分。请您查看一下,edit您的问题需要澄清吗?
-
从其他数据中分离日期似乎是一种提高自己理智和简化进一步下游处理的方法。
-
@tripleee:我没有留下数据,因为
**用于突出显示已更改的部分。否:我确定您现在展示的**是标记,而不是原始数据的一部分。 -
感谢@triplee 格式化。星号不是数据的一部分。