這是我的輸入檔案。我想在行首有"> "的行末添加一個字符":"。我試過seq -i 's|$|:|' input.txt,但": "被添加到每行的所有結尾。也很難叫出具體的行號,因為在我的每一個輸入檔案中,行中都含有"> "出現在不同的行號中。我想為多個檔案運行一個回圈,所以它是無用的。
>Pas_pyrG_2
aaagtcacaatggttaaaatggatccttattaatgtcgatccagggacaatgagccca
ttccagcatggtgaagttttgttaccgaagatggtgcagaaacagatctggatctgggt
>Pas_rpoB_4
caaactcactatggtcgtgtttgtccaattgaaactcctgaaggtccaaacattggtttg
atcaactcgctttctgtatacgcaaaagcgaatgacttcggtttcttggaaactccatac
cgcaaagttgtagatggtcgtgtaactgatgttgaatttatctgcaattgaagaa
>Pas_cpn60_2
atgaacccaatggatttaaaacgcggtatcgacattgcagtaaaaactgtagttgaaaat
atccgttctattgctaaaccagctgatgatttcaaagcaattgaacaagtaggttcaatc
tctgctactgatactgttggtaaacttattgctcaagcaatggaaaaagtaggtt
aaagaaggcgtaatcactgtagaagaaggctcaggcttcgaagacgcattagacgttgta
下面是專家的輸出檔案:
>Pas_pyrG_2:
aaagtcacaatggttaaaatggatccttattaatgtcatccagggacaatgagccca
ttccagcatggtgaagttttgttaccgaagatggtgcagaaacagatctggatctgggt
>Pas_rpoB_4:
caaactcactatggtcgtgtttgtccaattgaaactcctgaaggtccaaacattggtttg
atcaactcgctttctgtatacgcaaaagcgaatgacttcggtttcttggaaactccatac
cgcaaagttgtagatggtcgtgtaactgatgttgaatttatctgcaattgaagaa
>Pas_cpn60_2:
atgaacccaatggatttaaaacgcggtatcgacattgcagtaaaaactgtagttgaaaat
atccgttctattgctaaaccagctgatgatttcaaagcaattgaacaagtaggttcaatc
tctgctactgatactgttggtaaacttattgctcaagcaatggaaaaagtaggtt
aaagaaggcgtaatcactgtagaagaaggctcaggcttcgaagacgcattagacgttgta
seq是否有更多的選項可以修改或者其他的命令可以解決這個問題?
uj5u.com熱心網友回復:
使用ed來編輯檔案:
printf "%s
" 'g/^>/s/$/:/' w | ed -s input.txt
對于每一個以>開頭的行,在結尾處加一個冒號,然后w將改變的檔案寫回磁盤。
uj5u.com熱心網友回復:
sed -i '/^>/ s/$/:/' input.txt
在輸入行中搜索與^>("以>字符開始 "的regex)匹配的行。 那些符合s的行將:替換為行末(這部分你說對了)。
/斜線是sed中的標準分隔符。 如果你希望使用不同的字符,請確保通過-e或s|$|:|可能不會作業。 由于/字符,與|字符不同,在shell中不是有意義的字符,最好使用它們,除非模式中也包含斜線,在這種情況下,事情會變得不容易處理。
小心使用sed -i。 做一個備份 - 通過使用 diff 來比較檔案,確保你知道什么在改變。
在OSX上-i需要一個引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/318337.html
標籤:
上一篇:用Unix命令或bash腳本將帶有abc.def的檔案轉換成abc-def-1.0.0.tar.gz?
下一篇:SeleniumNet::ReadTimeout在沒有@javascript標簽的情況下立即通過測驗-RubyCucumber測驗
