我有一个文件,其中一些行包含看起来像这样的日期
2017/07/21=2017/05/23 some text
somethign
somthig
2017/04/22=2017/05/23 text2
smt1
smt2
我想更改第一次和第二次约会的位置,但前提是第一次约会在第二次之前。
是否可以使用sed
或其他一些命令行 linux 实用程序进行类似的操作?
这项工作的最佳工具是awk
. awk 是记录解析和字段比较的完美工具。以下将做你期望的:
awk '/\//&&/=/{ split($1,d,"="); if (d[1] > d[2]) $1 = d[2]"="d[1] }1' <file>
这输出:
2017/05/23=2017/07/21 some text
somethign
somthig
2017/04/22=2017/05/23 text2
smt1
smt2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句