Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用终端一次重命名多个文件?_Bash_Macos_Terminal_File Rename - Fatal编程技术网

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

Bash 如何使用终端一次重命名多个文件?,bash,macos,terminal,file-rename,Bash,Macos,Terminal,File Rename,我有一堆压缩的数据文件(它们都以“.tagAlign.gz”结尾) 我想将每个文件的前100000行移动到一个未压缩的新文件中,并保持每个文件的名称不变 我以前一次只处理一个文件,但在这种情况下,我可能有50-100个文件 我曾尝试查找诸如“重命名”等命令,但我对所有这些都很陌生,因此每个答案都太复杂,我无法理解 在重命名1个文件并移动前100000行的情况下,这是我在terminal中运行的命令: gzcat nameoffile.fastq.gz | head -n 400000 >

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

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

我以前一次只处理一个文件,但在这种情况下,我可能有50-100个文件

我曾尝试查找诸如“重命名”等命令,但我对所有这些都很陌生,因此每个答案都太复杂,我无法理解

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

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    

(未测试。请进行非破坏性测试…

这有效!非常感谢,我为我的问题不够清晰而道歉,这是我第一次真正使用stackoverflow!好的,谢谢!请考虑它是否帮助了你。