Bash 如何使用终端一次重命名多个文件?
我有一堆压缩的数据文件(它们都以“.tagAlign.gz”结尾) 我想将每个文件的前100000行移动到一个未压缩的新文件中,并保持每个文件的名称不变 我以前一次只处理一个文件,但在这种情况下,我可能有50-100个文件 我曾尝试查找诸如“重命名”等命令,但我对所有这些都很陌生,因此每个答案都太复杂,我无法理解 在重命名1个文件并移动前100000行的情况下,这是我在terminal中运行的命令: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 >
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!好的,谢谢!请考虑它是否帮助了你。