【问题标题】:Remove rest of each line after a certain pattern在特定模式后删除每一行的其余部分
【发布时间】:2019-03-15 07:18:12
【问题描述】:

示例中的目的是删除模式 90000: 之后的每一行的其余字符串

输入文件

generation
122344
41572:47149-47999/2(14485-14910) 41584:47149-47999/2(14911-15449) 90000:47919-47999/2(15447-15477) 90002:47919-47999/2(15478-15418) 
41548:48094-48894/2(12844-14244) 41590:48094-48894/2(14244-14944) 41572:48094-48894/2(14945-14045) 41584:48094-48894/2(14049-14449) 90000:48094-48114/2(14447-14447) 90002:48094-48114/2(14448-14458) 
12345

我试过了。此代码仅删除部分文本。目的是在找到90000后删除所有字符:

sed 's/90000:*//' file

期望的输出

generation
122344
41572:47149-47999/2(14485-14910) 41584:47149-47999/2(14911-15449)
41548:48094-48894/2(12844-14244) 41590:48094-48894/2(14244-14944) 41572:48094-48894/2(14945-14045) 41584:48094-48894/2(14049-14449)
12345

感谢您的支持

【问题讨论】:

标签: awk


【解决方案1】:

请您尝试关注一下。

awk '{gsub(/ 9000.*/,"")} 1'  Input_file

要修复您的代码,请尝试:

sed 's/90000:.*//'  Input_file

【讨论】:

  • RavinderSingh13, awk '{gsub(/90000:.*/,"")} 1' Input_file 。我认为最好与模式完全匹配,否则如果找到“9000”,它将全部删除
  • @OXXO,我相信这正是您所需要的,对吧?它根据帖子给出了预期的样本输出。
猜你喜欢
  • 2022-11-17
  • 1970-01-01
  • 2015-11-12
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多