Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何根据文件中的最小行删除前X行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个10,000行的文件.使用以下命令,我将删除第10,000行之后的所有行. sed -i '10000,$d' file.txt 但是,现在我想删除前X行,使文件不超过10,000行. 我想会是这样的: sed -i '1,$x d' file.txt 其中$x将是超过10,000的行数.我有点不知道如何写if,然后是它的一部分.或者,我以为我可以使用原始命令,只是反过来捕获文件? 例如,
我有一个10,000行的文件.使用以下命令,我将删除第10,000行之后的所有行.
sed -i '10000,$d' file.txt

但是,现在我想删除前X行,使文件不超过10,000行.

我想会是这样的

sed -i '1,$x d' file.txt

其中$x将是超过10,000的行数.我有点不知道如何写if,然后是它的一部分.或者,我以为我可以使用原始命令,只是反过来捕获文件

例如,如果我们只想从底部开始3行(在一些有用的答案之后看起来更简单):

输入:

Example Line 1
Example Line 2
Example Line 3
Example Line 4
Example Line 5

预期产出:

Example Line 3
Example Line 4
Example Line 5

当然,如果你知道一种更有效的编写命令的方法,我也会对此持开放态度.您的积极意见得到高度赞赏.

解决方法

为简单起见,我会反转文件,保留前10000行,然后重新反转文件.

它使得文件就地保存更复杂

source=file.txt
temp=$(mktemp)
tac "$source" | sed '10000 q' | tac > "$temp" && mv "$temp" "$source"

在不反转文件的情况下,您可以计算行数并进行一些算术运算:

sed -i "1,$(( $(wc -l < file.txt) - 10000 )) d" file.txt

大佬总结

以上是大佬教程为你收集整理的linux – 如何根据文件中的最小行删除前X行全部内容,希望文章能够帮你解决linux – 如何根据文件中的最小行删除前X行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。