【发布时间】:2017-09-06 21:34:16
【问题描述】:
我有多个这样的文件:
67 572 Cy_aJATC23 ?????????????????????????GCCCTGCTGAGGCCCATAGTCACAGAAGGACAAAGTGCCAGACCACCCCCTTTCTGGCCTTTAATCTGTGGTGGTGCTGGCACTGCCTCCACACGGGCCTCACTGTGTGACAATGCTCCTTTCAGGTGAGGTCTGATCGGGACAAGTTCACAATCATGCTGGATGTAAAACACTTCTCTCCCGAAGACTTGAGTGTGAAGATTATTGATGACTTTGTGGAAATCCATGGCAAGCACAGTGAAAGGCAGGTAAGTGGAAGTGATGGTGATGGTGGAGAAACTGGAGAGTCCAGCTCCGTTTCCCTTCTTTCCAACGGTTCTCAGCTGAAGGAAAAAAAAAAAGAATATATCAGAAGAAGGAGTTAATTATGAATTGTCATTATTGGCACGGCCTGTTCCCATAGAGCCCCCATCTGATATCTGACAATAACAA
我想改变第一行
65572
由
['文件名'572]
文件的名称是“ACA_exon2.phylip-sequential”,我只想要第一部分“ACA_exon2”,但我没问题,我可以在之后更改它。
我很接近这个
for file in ~/folder/*; do sed -E 's/^ (\w+)( \w+)/\[$file\2]/g' $file ; done;
这是结果
[$文件 572] Cy_aJATC23 ??????????????????????????????????????????????????? ????????????????TACCACCCAAGATGTTAACAAGCTGGCATGTTTTGAGCATCAAAGATAGAGAGGAAACTGTGTTTACATGTTTGGCACAAAAACTAATGAGGAAAGTCAATTGGCCCTTTGTCTTGAGGGTCTGAAGAGCCGCGCTCTAATGTTTGGTTTCTTGGTTGGCACTTGTTCAAGTAATCACTCGTGGCCTGACAAAGCAGCACTTGTGTTTTATTAGTGGCCATGCTGAACTCTCCTGCCTGGGCTATGTTGCCTCTCAATAGAGCACTGCACCAGAGGGCATACTTATTTGAAAACACTAAATCAGAGCATGATGATCTTTGCCCGACAAATACAACCAAGAGAGGAGAAAGAAAAGTGACAACAGCTCTCCTTTTGTTAGAGAAAGTGAGGAAACAACAACTGGTGTGTGTGCATGTGCATGTGTGTAAGATGAGTCCTGAAACACCGGTGACGAAATGAGCAAAACTTTGTTCCCATAATGTGATGCTCAGAACCAACTGGATT???
sed 无法将 $file 识别为将名称保留在文本中的命令...
我想要这个
[ACA_exon2 572] Cy_aJATC23 ??????????????????????????????????????????????????? ????????????????TACCACCCAAGATGTTAACAAGCTGGCATGTTTTGAGCATCAAAGATAGAGAGGAAACTGTGTTTACATGTTTGGCACAAAAACTAATGAGGAAAGTCAATTGGCCCTTTGTCTTGAGGGTCTGAAGAGCCGCGCTCTAATGTTTGGTTTCTTGGTTGGCACTTGTTCAAGTAATCACTCGTGGCCTGACAAAGCAGCACTTGTGTTTTATTAGTGGCCATGCTGAACTCTCCTGCCTGGGCTATGTTGCCTCTCAATAGAGCACTGCACCAGAGGGCATACTTATTTGAAAACACTAAATCAGAGCATGATGATCTTTGCCCGACAAATACAACCAAGAGAGGAGAAAGAAAAGTGACAACAGCTCTCCTTTTGTTAGAGAAAGTGAGGAAACAACAACTGGTGTGTGTGCATGTGCATGTGTGTAAGATGAGTCCTGAAACACCGGTGACGAAATGAGCAAAACTTTGTTCCCATAATGTGATGCTCAGAACCAACTGGATT???
你能帮帮我吗?
提前致谢
【问题讨论】:
-
这会方式在
awk中更容易做到 -
请务必在 Bash btw 中的变量扩展周围使用引号。
"$file"在你上面的例子中...... -
它不适用于
"$file"-["$file" 572] -
我可以看到它不起作用。只是指出变量需要在 Bash 中引用,否则可能会发生不好的事情。请参阅我的答案以了解引用的内容和未引用的内容。