但是有条件的替换

马可

我有一个文件,其中一些行包含看起来像这样的日期

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章