gpt4 book ai didi

bash - 如何在 bash 中输出两个日期之间的数据?

转载 作者:行者123 更新时间:2023-11-29 09:43:01 25 4
gpt4 key购买 nike

我有这样一个文件:

2014-12-31 531.252429 532.602384 525.802363 526.402397 1368200 526.402397
2014-12-30 528.092396 531.152424 527.132366 530.422394 876300 530.422394
2014-12-29 532.192446 535.482414 530.013375 530.332426 2278500 530.332426
2014-12-26 528.772422 534.252417 527.312364 534.032454 1036000 534.032454
2014-12-24 530.512424 531.761394 527.022384 528.772422 705900 528.772422
2014-12-23 527.00237 534.56241 526.292354 530.592416 2197600 530.592416

并希望在 bash 脚本中回显 2014-12-31 和 2014-12-23 之间的每一行。

我之前试过这个,但它最终向我显示了我想要的行,但在一个永无止境的循环中。

perl -ne 'if ( m/^([0-9-]+)/ ) { $date = $1; print if ( $date ge "2014-12-31" and $date le "2014-12-23" ) }' file.txt

出了什么问题,我该如何修复代码?

最佳答案

如果行按日期排序,您可以简单地使用 Perl 的 .. range operator :

perl -ne 'print if /2014-12-31/ .. /2014-12-23/' file.txt

要修复单行代码,请交换 lege 运算符以正确设置范围:

perl -ne 'if ( m/^([0-9-]+)/ ) { $date = $1; print if ( $date le "2014-12-31" and $date ge "2014-12-23" ) }' file.txt

关于bash - 如何在 bash 中输出两个日期之间的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com