如何使用终端一次重命名多个文件?

问题描述 投票:2回答:1

我有一堆压缩的数据文件(它们都以'.tagAlign.gz'结尾)。

我想将每个文件的前100,000行移动到一个未压缩的新文件中,并保持每个文件的名称不变。

我以前一次为一个文件做过这个,但在这种情况下我可能有50-100个文件。

我已经尝试过查找“重命名”等命令,但我对所有这些都很陌生,所以每个答案都太复杂了,我无法遵循。

在我重命名1个文件并移动前100,000行的情况下,这是我在终端中运行的命令:

gzcat nameoffile.fastq.gz | head -n 400000 > nameoffile_100k.fastq 

提前致谢!

bash macos terminal file-rename
1个回答
1
投票

你的问题有点不清楚,但从我认为你所追求的是什么,你需要一个像这样的循环:

for fn in *.gz; do
    n=$(basename "$fn" .fastq.gz) 
    gzcat "$fn" | head -n 100000 > "$n"_100k.fastq
done    

(未测试。请非破坏性地测试...)

© www.soinside.com 2019 - 2024. All rights reserved.