2011-08-18 25 views
22

我怎樣才能獲得第二線在一個文件中使用SED如何獲得僅次於符合SED

@SRR005108.1 :3:1:643:216 
GATTTCTGGCCCGCCGCTCGATAATACAGTAATTCC 
+ 
IIIIII/III*IIIIIIIIII+IIIII;IIAIII%> 

,看起來像上面我想要的數據只拿到

GATTTCTGGCCCGCCGCTCGATAATACAGTAATTCC 

回答

35

你並不真的需要桑達,但如果pourpose是學習...您可以使用-n

n讀取下一個輸入行,並開始處理新行用命令,而不是第一個命令

sed -n 2p somefile.txt 

編輯:您還可以提高使用manatwork在他的評論中提到的尖端性能:

sed -n '2{p;q}' somefile.txt 
+4

如果你確定在第2行之後不再有第2行,你可以在'p'rinting'後面用'q'uiting來省掉一些無意義的處理:'sed -n'2 {p; q}'somefile.txt' 。 – manatwork

+1

請參閱此處的「參考」:http://www.grymoire.com/Unix/Sed.html#uh-33 – sehe

+0

好點@Manatwork,以及一個非常有趣的教程sehe。兩者皆爲+1。 – Jonathan

15

你總是想要一個文件的第二行?無需SED:

head -2 file | tail -1 
+0

這需要2個進程,而不是一個與sed。所以從性能的角度來看,sed更好。 – jfg956

+0

@jfgagne我不確定。你有基準嗎? – HongboZhu

+0

非常好奇的解決方案。大拇指! – HongboZhu

9

這將打印每一個文件的第二行:

awk 'FNR==2' 

而這其中只有第一個文件的第二行:

awk 'NR==2' 
4

這可能會爲你工作:

sed '2q;d' file 
1
cat your_file | head -2 | tail -1