2015-06-05 44 views
3

對於使用我的文件內容代碼指定表示抱歉,否則格式化會很奇怪。使用bash將每行的前10個字符寫入新文件

我有一個包含以下內容的6,6494,940一行:

@MSQ-M01247R:81:000000000-ACWD8:1:1101:11811:1088 2:N:0: 
CCCCCTCTTCCCTTTCTTCCCCCCTCTTTCTTCTTTCTCTTTTCTCCCTCTCCTTTTTTTCTCCTTTTTTTCCTTT 
+ 
############################################################################ 

我想每一行到一個新文件的前10個字符寫入順序:

@MSQ-M0124 
CCCCCTCTTC 
+ 
########## 

我用第E採用bash腳本:

while read line 
do 
     long=$line 
     short=${long:0:10} 
     echo ${short} 
done < $1 

用下面的命令:

./bashscript.sh fileread.fastq >> filewrite.fastq 

結果

出了錯。我的新/寫文件有628,429,568,但它應該有66,494,940像原始/讀取文件。所以看起來它保持循環。

當我用頭命令在新/寫文件,我得到:

@MSQ-M0124 
CCCCCTCTTC 
+ 
########## 
@MSQ-M0124 
CCTCCTCCTT 
+ 
########## 
@MSQ-M0124 
CCTTCTTCTT 

當我使用tail命令我得到:

CCCCCGGGGG 
+ 
CCCCCGGGGG 
GAGTCGTCTG 
+ 
CCCCCGGGGG 
+ 
CCCCCGGGGG 
GAGTCGTCTG 
+ 
CCCCCGGGGG 
+ 
CCCCCGGGGG 
GAGTCGTCTG 
+ 

回答

5

cut是你的朋友!

$ cut -c-10 file 
@MSQ-M0124 
CCCCCTCTTC 
+ 
########## 

它使用cut與選項-c,從Ç haracters,拿到範圍-10,其中隱含從1日到10日表示。

+1

謝謝!這工作完美,運行速度非常快。 – Ziska220

相關問題