後,我有一個列的文件如下圖所示刪除文本分號
chr1 899766 899766 G T exonic;exonic KLHL17 . nonsynonymous SNV;nonsynonymous SNV
我想以後刪除文本「;」在列6和9.輸出應該看起來像:
chr1 899766 899766 G T exonic KLHL17 . nonsynonymous SNV
有人可以給一個Linux命令來解決這個問題。
後,我有一個列的文件如下圖所示刪除文本分號
chr1 899766 899766 G T exonic;exonic KLHL17 . nonsynonymous SNV;nonsynonymous SNV
我想以後刪除文本「;」在列6和9.輸出應該看起來像:
chr1 899766 899766 G T exonic KLHL17 . nonsynonymous SNV
有人可以給一個Linux命令來解決這個問題。
這將刪除包含;
以及在任何字段後的部分,假定字段由製表符分隔。
sed 's/;[^\t]*//g' <file>
如果你想這樣做只是在第6和第9個字段:所需的輸入
perl -lne '@F=split/\t/;$F[$_]=~s/;.*// for(5,8);print join"\t",@F' <file>
,我已經使用sed
echo "chr1 899766 899766 G T exonic;exonic KLHL17 . nonsynonymous SNV;nonsynonymous SNV" | sed 's/;[a-zA-Z]* [a-zA-Z]*//g'
輸出
chr1 899766 899766 G T exonic KLHL17 . nonsynonymous SNV
它只會k代表「word;word
」或「word word;word word
」
從您的問題示例中不清楚列分隔符是什麼。它是一個製表符,還是兩個或多個空格或可能是其他的? – 2014-11-02 20:32:47