sed使用换行符替换特定字符前面的选项卡

时间:2014-03-13 05:38:57

标签: tabs

我知道如何在文本编辑器中执行此操作,但它关闭了我的计算机,因为我有一个大文件。我将这样的制表符分隔数据全部放在一行:

  

XP_23947974 XM_23947974 HG12390产品= blahblah NP_23947975 XM_23947975 HG12391产品= blahblah2

我想在每个XP或NP处插入一个换行符。因此,由于它是以制表符分隔的,所以在文本编辑器中我只是要做

Find:(\D)P_
Replace:\n\1P_

给予

  

XP_23947974 XM_23947974 HG12390 product = blahblah
  NP_23947975 XM_23947975 HG12391产品= blahblah2

但我想使用sed(etc)来做到这一点。帮助赞赏。

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

sed -e 's/\(XP\|NP\)/\n\1/g'

你可以用以下方法测试:

echo 'XP_23947974 XM_23947974 HG12390 product=blahblah NP_23947975 XM_23947975 HG12391 product=blahblah2' | sed -e 's/\(XP\|NP\)/\n\1/g'