[英]sed conditional substitution
我有一些行中包含如下所示的日期的文件
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.