使用循环从多个文件中提取行

Use loop to extract rows from multiple files

我正在尝试创建一个循环,它允许我从遵循格式 CPMIR(1-6).sln 的多个文件中提取第 18 行到 5773 行(打印所有列),然后将它们输出到分别编号的文件, batch[1-6].txt

我使用网上找到的示例来编写这段代码:

for i in {1..6}; do
    sed -n '{ '18,5773p;q' CPMIR'"${i}"'.sln }' > batch${i}.txt
done

但我迷路了。对编码和弄清楚它还是个新手。

感谢您的帮助!

找到另一个 example: 并得到下面的代码来完成这项工作

for i in {1..6}; do
  awk ' NR >=18 && NR <=5773 {print [=10=]}' CPMIR${i}.sln > batch${i}.txt
done

这可能适合您(GNU sed 和并行):

parallel "sed '1,17d;5773q' CPMIR{}.sln >batch{}.txt" ::: {1..6}