【发布时间】:2018-09-01 06:48:24
【问题描述】:
我正在尝试将标题为 {out1.hmm, out2.hmm, ... , outn.hmm} 的文件转换为基于文件 {PF12574.hmm, PF09847.hmm, PF0024.hmm} 该脚本适用于单个文件,但是变量不会被覆盖,并且只有一个文件保留在运行以下命令后:
for f in *.hmm;
do output="$(sed -n '3p' < $f |
awk -F ' ' '{print $2}' |
cut -f1 -d '.' | cat)" |
mv $f "${output}".hmm; done;
第一行调用所有的 outn.hmms 作为输入。第二行设置一个变量以返回所需的唯一标识符。 SED、AWK 和 CUT 用于获取唯一标识符。该变量应该通过唯一标识符重命名当前文件,但是该变量保持锁定并覆盖先前的文件。
out1.hmm out2.hmm out3.hmm 变成 PF12574.hmm
如何覆盖变量以获得以下文件结构:
out1.hmm out2.hmm out3.hmm 变成 PF12574.hmm PF09847.hmm PF0024.hmm
【问题讨论】:
标签: variables unix rename naming file-rename