tab分隔的输出来自grep

时间:2015-12-07 13:29:27

标签: bash grep

我想在下面的脚本中找到一个与我的列分开的标签。显然| column -t不是这样做的。

for f in Hairpin_*_Collapsed_Mapped.sam; do
base_name=${f%.txt}
id=${base_name#*_}
grep mmu "$f" | column -t > "mmu_${id}.sam"
done

示例输入:

98-18866        0       mmu-mir-27b     49      34      21M     *       0       0       TTCACAGTGGCTAAGTTCTGC   IIIIIIIIIIIIIIIIIIIII   AS:i:0  XS:i:-6 XN:i:0  XM:i:0  XO:i:0  XG:i:0  NM:i:0  MD:Z:21 YT:Z:UU

输出grep mmu“$ f”

386556-1   0                   mmu-mir-6937    3    255  17M      *  0  0  GCTCTAAGGGCTGGGTC           IIIIIIIIIIIIIIIII           AS:i:-6   XN:i:0    XM:i:1  XO:i:0  XG:i:0  NM:i:1  MD:Z:3G13        YT:Z:UU
386614-1   0                   mmu-mir-205     7    255  22M      *  0  0  TCCTTCATTCCACCGTAGTCTG      IIIIIIIIIIIIIIIIIIIIII      AS:i:-6   XN:i:0    XM:i:1  XO:i:0  XG:i:0  NM:i:1  MD:Z:15G6        YT:Z:UU
386681-1   0                   mmu-mir-5107    10   255  20M      *  0  0  TTGTGCAGAGGAGGCAGGGA        IIIIIIIIIIIIIIIIIIII        AS:i:-6   XN:i:0    XM:i:1  XO:i:0  XG:i:0  NM:i:1  MD:Z:3G16        YT:Z:UU
386733-1   0                   mmu-mir-320     16   255  23M      *  0  0  GCCTTCTCTTCCCGGTTCTTCCT     IIIIIIIIIIIIIIIIIIIIIII     AS:i:-6   XN:i:0    XM:i:1  XO:i:0  XG:i:0  NM:i:1  MD:Z:22C0        YT:Z:UU
386669-1   0                   mmu-mir-221     20   255  25M      *  0  0  ACCTAGCATACAATGTAGATTTCTG   IIIIIIIIIIIIIIIIIIIIIIIII   AS:i:-6   XN:i:0    XM:i:1  XO:i:0  XG:i:0  NM:i:1  MD:Z:4G20 

1 个答案:

答案 0 :(得分:1)

对于简单的标签,我会使用

每列
grep mmu "$f" |sed "s/ \+/\t/g" > "mmu_${id}.sam"