小编kev*_*v93的帖子

重命名没有文件扩展名的文件

我有一系列名为KLLxxxx代表数字)的文件。它们是文本文件,但没有文件扩展名。只是KLL后跟三位数字的文件。我希望它们都以文件扩展名.fastq. 例如KLL123-> KLL123.fastq

所以我尝试使用这个命令

mv KLL* KLL*.fastq
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误消息:

mv: target 'KLL067.fastq' is not a directory
Run Code Online (Sandbox Code Playgroud)

我知道重命名命令功能,但我以前从未使用过 Perl,所以我不知道如何处理。我知道这是一个基本问题,但这是我第一次尝试 Linux。

linux rename

3
推荐指数
1
解决办法
4794
查看次数

在多个文件上运行命令并为每个输出指定唯一的名称

我想对文件夹中的所有文件运行一个脚本,如下所示:

sh script.sh *.fasta > output
Run Code Online (Sandbox Code Playgroud)

但是我希望每个输入的输出都位于单独的文件中。因此,不是通过命令获取 5 个文件并将它们全部放入名为“output”的文件中,有没有办法让输出成为文件名,并在末尾添加后缀(如“_output”)?

所以如果我有 3 个文件,例如:

file1.fasta
file2.fasta
file3.fasta
Run Code Online (Sandbox Code Playgroud)

有没有办法可以运行这样的命令:

sh script.sh *.fasta
Run Code Online (Sandbox Code Playgroud)

并为每个输入输出这样的新文件:

file1_new.fasta
file2_new.fasta
file3_new.fasta
Run Code Online (Sandbox Code Playgroud)

我尝试了命令:

sh script.sh *.fasta > *_output.fasta
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我还尝试将所有感兴趣的文件分配给这样的变量,他认为如果我首先将它们分配给变量,也许我可以以某种方式重命名输出:

allthefiles= *.fasta
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。我不知道该怎么称呼这个问题,如果已经被问过,很抱歉!如何通过命令运行多个文件并为每个输入提供新的输出?

shell bash files

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

files ×1

linux ×1

rename ×1

shell ×1