大容量ファイルを複数に分割しますか?

大容量ファイルを複数に分割しますか?

約1000行の大きなファイルrun_simulation.cshがあります。

#!/bin/csh                                                                                                                                                               
set config_dir = /proj/ABC/users/nhannguyen/work/verif/qc/input
set testbench_dir = /proj/ABC/users/nhannguyen/work/verif/qc/testbench/TT_p025c
bsub $testbench_dir/cell/delay_0_0.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_0_1.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_0_2.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_0_3.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_1_0.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_1_1.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_1_2.sp.py -c $config_dir/sim.config.py -m 1
bsub $testbench_dir/cell/delay_1_3.sp.py -c $config_dir/sim.config.py -m 1
...............

このファイルを50行の小さなファイルに分割したいので、大きなファイルrun_simulation.cshの最初の3行が必要です。可能であれば、これらの小さなファイルの拡張子は.cshです。この分割をどのように実行しますか?コマンドで?

#!/bin/csh                                                                                                                                                               
set config_dir = /proj/ABC/users/nhannguyen/work/verif/qc/input
set testbench_dir = /proj/ABC/users/nhannguyen/work/verif/qc/testbench/TT_p025c

ベストアンサー1

#!/bin/bash
# step 1: Remove the header:
tail -n +4 ./bigfile.csh > bigfile_without_header.csh

# step 2: Split the file:
split -d -l 1000 --additional-suffix=.csh ./bigfile_without_header.csh split-

# step 3: Add the header back to each file:
HEADER='#!/bin/csh\nset config_dir = /proj/ABC/users/nhannguyen/work/verif/qc/input\nset testbench_dir = /proj/ABC/users/nhannguyen/work/verif/qc/testbench/TT_p025c\n'
sed -i "1s,^,$HEADER," split-*.csh

おすすめ記事