我想从特定的行号拆分一个 400k 行长的日志文件。
对于这个问题,让我们将其设为任意数字 300k。
是否有允许我执行此操作的 linux 命令(在脚本中)?
我知道split
让我按大小或行号将文件分成相等的部分,但这不是我想要的。我想要一个文件中的前 300k 和第二个文件中的最后 100k。
任何帮助,将不胜感激。谢谢!
再三考虑,这将更适合超级用户或服务器故障站点。
我想从特定的行号拆分一个 400k 行长的日志文件。
对于这个问题,让我们将其设为任意数字 300k。
是否有允许我执行此操作的 linux 命令(在脚本中)?
我知道split
让我按大小或行号将文件分成相等的部分,但这不是我想要的。我想要一个文件中的前 300k 和第二个文件中的最后 100k。
任何帮助,将不胜感激。谢谢!
再三考虑,这将更适合超级用户或服务器故障站点。
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
此外,再三考虑,拆分将适用于您的情况,因为第一个拆分大于第二个拆分。拆分将输入的余额放入最后一个拆分,所以
split -l 300000 file_name
将输出xaa
300k 行和xab
100k 行,输入 400k 行。