如何删除所有符号以创建制表符分隔文件?

时间:2017-06-22 12:04:55

标签: regex

我有一个包含这样句子的文件:

    >Mouse|chr1:52136377-52136981 | element 1 | negative
    >Mouse|chr15:52166424-52166999 | element 2 | negative

我希望输出制表符分隔,如下所示:

    Mouse   chr1    52136377    52136981    element 1   negative
    Mouse   chr15   52166424    52166966    element 2   negative

这对我来说非常棘手,因为我对正则表达和sed非常陌生。我尝试使用sed删除所有符号,例如: , | , - , and >并插入一个标签,但它不起作用。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

扩展 sed 方法:

sed -E 's/ *[>\|:-] */\t/g' file

输出:

    Mouse   chr1    52136377    52136981    element 1   negative
    Mouse   chr15   52166424    52166999    element 2   negative
  • [>\|:-] - 包含要替换的所有关键字符的字符类

答案 1 :(得分:0)

尝试将[>|:\- ]+替换为\t ...