我想从当前目录中的所有文件名中删除test.extra
for filename in *.fasta;do
echo $filename | sed \e 's/test.extra//g'
done
Run Code Online (Sandbox Code Playgroud)
但它抱怨没有创建file.echo是确保它正确列出.
hos*_*ter 45
首先使用'sed -e'而不是'\ e'
我建议你在bash中这样做
for filename in *.fasta; do
[ -f "$filename" ] || continue
mv "$filename" "${filename//test.extra/}"
done
Run Code Online (Sandbox Code Playgroud)
the*_*eon 34
尝试 rename "extra.test" "" *
$ find
./extra.test-eggs.txt
./extra.testbar
./fooextra.test
./ham-extra.test-blah
$ rename "extra.test" "" *
$ find
./-eggs.txt
./bar
./foo
./ham--blah
Run Code Online (Sandbox Code Playgroud)
小智 28
我知道这个步骤已经很久了,但是下面的oneliner,从经过验证的答案中获得灵感,对我帮助很大;)
for filename in ./*; do mv "./$filename" "./$(echo "$filename" | sed -e 's/test.extra//g')"; done
Run Code Online (Sandbox Code Playgroud)
Rod*_*uis 24
尝试rename命令:
rename 's/test.extra//g' *.fasta
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65114 次 |
| 最近记录: |