Bra*_*n W 2 macos shell terminal bioinformatics
我试图从目录中随机选择 50 个文件(.nexus 文件)并将它们复制到单独的目标目录中。
我在一个关于类似主题的问题页面上发现了以下脚本,其中随机选择 8 个项目:
舒夫-zn8-e *.jpg | xargs -0 cp -vt 目标/
shuf 随机排列当前目录中的 *.jpg 文件列表。-z 是以零结束每一行,以便正确处理带有特殊字符的文件。-n8 在 8 个文件后退出 shuf。xargs -0 读取由空字符分隔的输入(来自 shuf -z)并运行 cp。-v 详细打印每个副本。-t 是指定目标目录。
当在终端中输入这个命令时,我发现 -t 对于 MacOS 来说不是一个有效的命令。然而,删除它后,我似乎仍然无法让脚本工作。输入以下脚本的输出是:
用法: cp [-R [-H | -L | -P]] [-fi | -P]] -n] [-apvXc] 源文件 目标文件 cp [-R [-H | -L | -P]] [-fi | -P]] -n] [-apvXc] 源文件 ... 目标目录
我一直在使用的代码如下。我使用 gshuf 而不是 shuf,长文件路径是要复制到的文件的目标目录。
我对编码等相当陌生,因此任何建议将不胜感激!谢谢!
gshuf -zn50 -e *.nexus | gshuf -zn50 -e *.nexus | xargs -0 cp -v ~/Users/brandon/Dropbox/Macbook/CH2_macrops_UCE_project/taxon-sets/all_outgroups3/macrops_randomly_sampled_50_A
小智 6
正如你所说,你对此相当陌生,也许坚持一些简单的事情
cp $(ls | sort -R | head -50) targetdir/
Run Code Online (Sandbox Code Playgroud)
cp副本
ls列出了您当前的目录(请注意,它仅在输出到屏幕时生成列)
sort对它从中获取的列表进行排序ls,但-R告诉它进行随机排序,
head从随机列表的顶部sort -50得知有多少个
返回$() 括号中内容的执行结果
当然还有| 命令之间从左(输出)到右(输入)的管道文本
| 归档时间: |
|
| 查看次数: |
3365 次 |
| 最近记录: |