问题:
我有一个txt文件,如下所示:
SRA1202321.sra
SRA123221.sra
SRA1209312.sra我有一个像这样的目录:
SRA1202321.sra
SRA123221.sra
SRA1209312.sra
random.sra
random.sra我希望将所有文件从.txt移到一个不同的目录,并留下我不想要的文件。我是新手,所以我在做这件事上遇到了一些困难。
我试过:
cat ~working/metasamples.txt |
xargs mv ~/ncbi/public/sra/metasamples/但是,似乎有新的行字符被捕获,所以它说不存在目录。我目前正在研究bash脚本,并且也有这样的想法:
#!/bin/bash
while read p; do
mv "$p" ~/ncbi/public/sra/metasamples/
done <~/working/metaSRAfromjsoncorrected.txt然而,我不知道如何删除新的行?部分原因是im混淆了为什么输入文件是最后给出的,以及我是否可以像python那样调整变量。抱歉,如果有点混乱的话。
谢谢你的帮助
发布于 2022-05-18 06:51:13
这可能是CRLF线路结局的问题。您可以使用(在bash中)代替cat:
sed $'s/\r$//' ~working/metasamples.txt |
xargs -I {} mv {} ~/ncbi/public/sra/metasamples/,只要metasamples.txt中的文件名不包含任何有问题的字符即可。
https://stackoverflow.com/questions/72284183
复制相似问题