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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用终端一次重命名多个文件?相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

提前致谢!

答案

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

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

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

以上是关于如何使用终端一次重命名多个文件?的主要内容,如果未能解决你的问题,请参考以下文章

一次重命名多个文件的 C++ 程序

如何确定文件最近一次重命名的时间?

如何在运行时分隔字符串?

rename -n 选项在 cygwin 下似乎不可用

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全