【问题标题】:How to replace line number delimiter in grep output如何替换 grep 输出中的行号分隔符
【发布时间】:2015-09-24 19:38:19
【问题描述】:

我在做:

egrep -e "String" -in -A 2 file1.log

我得到的输出是

111:some text
112-some text
113-some text

如何将文件中每行开头的每个行号的 ^'[0-9]{1,9}-' 替换为 ^'[0-9]{1,9}:'?所以它看起来像:

111:some text
112:some text
113:some text

【问题讨论】:

  • 看看stackoverflow.com/questions/1169927/…,希望对你有帮助!
  • 我试过但没用。我正在寻找这样的解决方案 egrep -e "String" -in -A 2 file1.log | sed 's/^'[0-9]{1,9}-'/^'[0-9]{1,9}:'/'

标签: grep delimiter


【解决方案1】:

将输出传送到sed。这在这里有效:

grep ... | sed 's/^\([0-9]\+\)-/\1:/'

【讨论】:

  • 非常感谢 thor :),是的,它可以工作,但它也删除了组分隔符“--”。就像解决方法一样,我使用 grep "--group-separator==" 选项将组分隔符更改为 '=='
  • @ypp:是的,我注意到了这一点,并将模式更改为使用\+ 量词而不是*
猜你喜欢
  • 2020-10-13
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 2011-03-06
  • 2020-07-17
  • 1970-01-01
  • 2016-04-03
  • 2013-03-22
相关资源
最近更新 更多