我有一個快速的問題 - 我試圖解決一個文件系列的輸出已被更改的問題。殼來解決輸出問題 - 連接和文件讀取問題
輸出應該看起來像:
>Tests HadI-sdds1:4134:AAABBBBB:1:1101:6635:2407_2:N:0:TTTTTT
AAAABBBBBEEEECCCCERTTSFASFASFDSGFSDGGSFGFSGDFGDFGDFGDFGDFGDFGDFGDCCVBWAAAABBBBBEEEECCCCERTTSFASFASFDSGFSDGGSFGFSG
但顯示爲:
>Tests HadI-sdds1:4134:AAABBBBB:1:1101:6635:2407_2:N:0:TTTTTT
AAAABBBBBEEEECCCCERTTSFASFASFDSGFSDGGSFGFSGDFGDFGDFGDFGDFGDFGDFGDCCVBW
AAAABBBBBEEEECCCCERTTSFASFASFDSGFSDGGSFGFSG
我寫了下面的代碼,試圖修復它,但線16自然會返回一個空字符串,但是,當我做回聲沒有放入一個變種,我得到完整的一行。
#!/bin/sh
FILENAME=$1
OUTPUT=$2
set LineToWrite=''
while read LINE
do
if [ `echo "$LINE" | awk '{print substr($0,1,1)}'` == ">" ]
then
echo "$LineToWrite" >> $OUTPUT
echo "$LINE" >> $OUTPUT
set LineToWrite=''
else
set currLine=`echo "$LINE" | awk '{print substr($0,1,70)}'`
set LineToWrite+=$currLine
fi
done <$FILENAME
任何想法來解決我的問題? (該文件包含> 100萬行)
非常感謝!
問題是在'W A ...'之間的第三行中有1個空格,並且您想要刪除它嗎?以'>'字符開頭的數據行?是否真的有換行符嵌入到記錄中?如果不是,最好編輯您的示例數據,以便說明每條記錄出現在上面一行上的問題。 awk程序可以處理所有這些,但是你的描述太難遵循了,祝你好運 – shellter
這是第2行(由W結尾)和3(由A開始)之間的換行符,它僅僅是不能正確顯示示例的stackoverflow 。每個第一行應該以「>」開始並且不應該被改變。 – user1726747
沒有必要使用awk來測試字符串是否開始'>':'if test「$ LINE」! =「$ {LINE#>}」;那麼......' –