ライン番号で分割をファイルする方法[閉じた
-
28-09-2019 - |
質問
特定の行番号から400K行の長いログファイルを分割したいと思います。
この質問では、これを任意の300Kにしましょう。
私がこれを行うことを可能にするLinuxコマンドはありますか(スクリプト内)?
知っている split
サイズまたはライン番号でファイルを等しい部分に分割してもらえますが、それは私が望むものではありません。最初の300Kを1つのファイルで、2番目のファイルで最後の100Kにしたいです。
どんな助けも感謝します。ありがとう!
再考すると、これはスーパーユーザーまたはServerFaultサイトにより適しています。
解決
file_name=test.log
# set first K lines:
K=1000
# line count (N):
N=$(wc -l < $file_name)
# length of the bottom file:
L=$(( $N - $K ))
# create the top of file:
head -n $K $file_name > top_$file_name
# create bottom of file:
tail -n $L $file_name > bottom_$file_name
また、最初の分割は2番目のスプリットよりも大きいため、Splitはあなたのケースで機能します。スプリットは、入力のバランスを最後のスプリットに入れますので、
split -l 300000 file_name
出力されます xaa
300Kラインと xab
400kラインの入力用に100k行。
所属していません StackOverflow