【问题标题】:extract text between patterns - unix - AIX在模式之间提取文本 - unix - AIX
【发布时间】:2018-06-02 23:53:00
【问题描述】:

我想在两个模式之间提取文本。我使用的命令在 AIX 上不起作用,但在 linux 上起作用。

首先,我在文件中查找模式的出现,我有这个

sed -n "/STEP 005450/p" step_100
STEP 005450 ***ACTIVATED*** Thu Oct  5 17:31:05 CEST 2017
STEP 005450 REF R-A493 STEP 000010 ( command  -s <CONTAINER> )
STEP 005450 ***FAILURE*** Thu Oct  5 17:31:05 CEST 2017 Return code : 2
STEP 005450 ***ACTIVATED*** Thu Oct  5 17:33:54 CEST 2017
STEP 005450 REF R-A493 STEP 000010 ( command -s CONT1 )
STEP 005450 ***SUCCESFUL*** Thu Oct  5 17:33:55 CEST 2017

其次,我想提取STEP 005450 ***ACTIVATED***STEP 005450 ***FAILURE***之间的部分文本,但是下面的命令不起作用,什么也不做。

sed -n "/STEP 005450/p" step_100 | sed -n "/STEP 005450/,/FAILURE/p"
STEP 005450 ***ACTIVATED*** Thu Oct  5 17:31:05 CEST 2017
STEP 005450 REF R-A493 STEP 000010 ( command  -s <CONTAINER> )
STEP 005450 ***FAILURE*** Thu Oct  5 17:31:05 CEST 2017 Return code : 2
STEP 005450 ***ACTIVATED*** Thu Oct  5 17:33:54 CEST 2017
STEP 005450 REF R-A493 STEP 000010 ( command -s CONT1 )
STEP 005450 ***SUCCESFUL*** Thu Oct  5 17:33:55 CEST 2017

通常我应该有这个

STEP 005450 ***ACTIVATED*** Thu Oct  5 17:31:05 CEST 2017
STEP 005450 REF R-A493 STEP 000010 ( command  -s <CONTAINER> )
STEP 005450 ***FAILURE*** Thu Oct  5 17:31:05 CEST 2017 Return code : 2

感谢旅游帮助

【问题讨论】:

  • GNU sed 没有像您所说的那样提供您想要的输出。可能你那里有一个复制粘贴错误
  • 我已经手动发短信了
  • 您的问题目前尚不清楚。请遵守MCVE principle

标签: unix sed aix


【解决方案1】:

也许这也适用于 AIX sed:

| sed -n "/ACTIVATED/,/FAILURE/{ /ACTIVATED/{h;b}; H; /FAILURE/{g;p}; }"

或作为一个命令:

sed -n '/STEP 005450/{ /ACTIVATED/,/FAILURE/{ /ACTIVATED/{h;b}; H; /FAILURE/{g;p}; }; }' file

输出:

步骤 005450 ***激活*** 2017 年 10 月 5 日星期四 17:31:05 CEST 步骤 005450 REF R-A493 步骤 000010(命令 -s) 步骤 005450 ***失败*** 2017 年 10 月 5 日星期四 17:31:05 CEST 返回代码:2

【讨论】:

  • 它不起作用:/。它返回给我这个错误: sed: the label /ACTIVATED/,/FAILURE/{ /ACTIVATED/{h;b}; H; /失败/{g;p}; } 大于八个字符。
  • 太糟糕了。值得一试。
  • 尝试在每个合乎逻辑的机会添加;s。例如,/ACTIVATED/{;h;b;}; 一些 seds 对解析事物的方式非常挑剔,而 AIX 在很多方面都非常挑剔;-)。祝你好运。
猜你喜欢
  • 2014-08-07
  • 2017-07-30
  • 2011-09-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2014-12-05
  • 2019-02-25
相关资源
最近更新 更多