2013-02-20 63 views
1

复制行我有这样类似项的文件:与SED和剪切命令

@HWI-ST750:151:C1C6AACXX:8:1101:10000:14114/1 
AAACATACCATTGCATATTTCGTATAATTCGAATTTAAGCAAGTTGTATTGCCAACAGCTCAGATCAATTAAGAATCTTTTCAAATTTATCAATTTA 
+/1 
DDHBFHHIAHHJEGJFGICHG;CGHGIJIIAIHHIJIGAGIE9FDFHGHG:[email protected]=;@FHI:DACHE>>[email protected];[email protected];)6(>[email protected]>[email protected] 
@HWI-ST750:151:C1C6AACXX:8:1101:10000:37802/1 
GTTCCTTTACTTGCTCCCATGTCCCAATCTAACACACATGAGTCGTCGCACGCCAGTAAATCTAAAGATTTCAGACACTCAGACTCGTACAGTGAAA 
+/1 
[email protected]DEEEEDDDDDDDDDCDDCCCDDDABBDD>CC>A 

我希望削减每2号线,从1日至45字。所以我用下面的命令:

sed "0~2p" BT8_A.fastq | cut -c1-45 | head -n 12 

它工作正常,但削减1日45个字同一条线路后,得到追加到下一line.Like本 -

@HWI-ST750:151:C1C6AACXX:8:1101:10000:14114/1 
AAACATACCATTGCATATTTCGTATAATTCGAATTTAAGCAAGTT 
AAACATACCATTGCATATTTCGTATAATTCGAATTTAAGCAAGTT 
+/1 
DDHBFHHIAHHJEGJFGICHG;CGHGIJIIAIHHIJIGAGIE9FD 
DDHBFHHIAHHJEGJFGICHG;CGHGIJIIAIHHIJIGAGIE9FD 
@HWI-ST750:151:C1C6AACXX:8:1101:10000:37802/1 
GTTCCTTTACTTGCTCCCATGTCCCAATCTAACACACATGAGTCG 
GTTCCTTTACTTGCTCCCATGTCCCAATCTAACACACATGAGTCG 
+/1 
[email protected] 
[email protected] 

我不能够解决这个。我在哪里错了。帮我。

谢谢。

我所需的输出是:

@HWI-ST750:151:C1C6AACXX:8:1101:10000:14114/1 
AAACATACCATTGCATATTTCGTATAATTCGAATTTAAGCAAGTT 
+/1 
DDHBFHHIAHHJEGJFGICHG;CGHGIJIIAIHHIJIGAGIE9FD 
@HWI-ST750:151:C1C6AACXX:8:1101:10000:37802/1 
GTTCCTTTACTTGCTCCCATGTCCCAATCTAACACACATGAGTCG 
+/1 
[email protected] 

回答

3

如果你想削减只有每2号线,保留其他不变,这可能是更容易使用awk

awk 'NR % 2 == 0 { print substr($0, 0, 45) } NR % 2 == 1 { print }' BT8_A.fastq 
+0

BINGO!谢谢你..确实是我想要的.. :) 但是上面的代码出了什么问题?! – PoisonAlien 2013-02-20 10:17:44

+1

@poisonAlien:通常情况下,'sed'在执行命令后总是打印模式空间的内容(除非用'-n'告诉它)。所以'0〜2p'告诉它打印偶数行a * second *时间,除了打印它将要做的行。另外,你将所有'sed'的输出传递给'cut',所以奇数行也会被减少到前45个字符。 – OpenSauce 2013-02-20 13:22:41

3

方式一:

$ sed 'n;s/\(.\{45\}\).*/\1/' file 
+0

谢谢。工作很好.. – PoisonAlien 2013-02-20 10:24:34

+0

+ 1比我的更好,理由是'sed'比'awk'更冷(因为在OP中请求了'sed') – OpenSauce 2013-02-20 13:23:31

2

这里是sed单行:

sed -r '2~2s/^(.{45}).*/\1/' file 

输出:

kent$ sed -r '2~2s/^(.{45}).*/\1/' file           │drwxr-xr-x 4 kent kent 160 Feb 15 16:48 pkg/ 
@HWI-ST750:151:C1C6AACXX:8:1101:10000:14114/1           │-rw-r--r-- 1 kent kent 19 Feb 15 14:06 status.xml 
AAACATACCATTGCATATTTCGTATAATTCGAATTTAAGCAAGTT           │-rw-r--r-- 1 kent kent 18K Feb 15 16:44 tinyswitch.tgz 
+/1                     │-rw-r--r-- 1 kent kent 73 Feb 15 14:06 t.sh 
DDHBFHHIAHHJEGJFGICHG;CGHGIJIIAIHHIJIGAGIE9FD           │-rw-r--r-- 1 kent kent 18K Feb 15 16:24 tsw.tgz 
@HWI-ST750:151:C1C6AACXX:8:1101:10000:37802/1           │-rw-r--r-- 1 kent kent 7.5K Feb 19 18:44 vimod.zsh 
GTTCCTTTACTTGCTCCCATGTCCCAATCTAACACACATGAGTCG           │-rw-r--r-- 1 kent kent 23K Feb 19 22:09 vimrd 
+/1                     │-rw-r--r-- 1 kent kent 42 Feb 17 16:00 x.txt 
[email protected]