使用bash创建具有旧文件名的新文件

时间:2014-08-02 12:19:22

标签: bash shell

我有一个脚本需要在文件夹中的每个文件上运行。 该脚本将在新文件夹中创建一个与原始文件同名的新文件。

因此该文件夹包含名称如下的文件:

SLX-8691.ART12.seq
SLX-8690.ART12.seq
SLX-8692.ART12.seq
SLX-8693.ART12.seq

我想在每个文件上运行的脚本是示例如下:

$ ./unique_seq_counts.rb ./qualitymask/SLX-8691.ART12.seq > ./uniquecounts/SLX-8691.ART12.counts.txt

这样SLX-8691.ART12.seq将被每个文件名替换。

有没有办法循环替换每个文件名?

由于

1 个答案:

答案 0 :(得分:1)

使用循环:

for F in ./qualitymask/*.seq; do
   T=${F##*/}  ## Removes directory part. Same as $(basename "$F")
   T=${T%.seq}.counts.txt  ## Removes .seq and adds .counts.txt
   ./unique_seq_counts.rb "$F" > "./uniquecounts/$T"
done

请参阅:Parameter ExpansionFilename Expansion