Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex sed条件代换_Regex_Bash_Awk_Sed - Fatal编程技术网

Regex sed条件代换

Regex sed条件代换,regex,bash,awk,sed,Regex,Bash,Awk,Sed,我有一个文件,其中一些行包含如下所示的日期 2017/07/21=2017/05/23 some text somethign somthig 2017/04/22=2017/05/23 text2 smt1 smt2 我想改变第一次和第二次约会的地点,但前提是第一次约会在第二次约会之前 使用sed或其他一些命令行linux实用程序是否可以实现类似的功能?完成此任务的最佳工具是awk。Awk是记录解析和字段比较的完美工具。以下内容将满足您的期望: awk '/\//&

我有一个文件,其中一些行包含如下所示的日期

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>

我觉得向一个拥有20.7k声誉的人陈述这一点有点尴尬,尽管如此:对不起,这不是StackOverflow的工作方式。我想做X的形式问题,请给我提示和/或示例代码被认为是离题的。请访问并阅读,尤其是阅读,以回答您的问题,是的,存在这样的工具。sed并不是处理这个问题的最佳方法,但是你可以通过awk来实现。谢谢,我不知道awk可以做到这一点,不客气。Awk是一个非常强大的工具,用于解析记录并对其执行操作。你知道的人,你不想改变。因为它是如此强大。
2017/05/23=2017/07/21 some text
  somethign
  somthig

2017/04/22=2017/05/23 text2
  smt1
  smt2