sed -i '10000,$d' file.txt
但是,现在我想删除前X行,使文件不超过10,000行.
我想会是这样的:
sed -i '1,$x d' file.txt
其中$x将是超过10,000的行数.我有点不知道如何写if,然后是它的一部分.或者,我以为我可以使用原始命令,只是反过来捕获文件?
例如,如果我们只想从底部开始3行(在一些有用的答案之后看起来更简单):
输入:
Example line 1Example line 2Example line 3Example line 4Example line 5
预期产出:
Example line 3Example line 4Example line 5
当然,如果你知道一种更有效的编写命令的方法,我也会对此持开放态度.您的积极意见得到高度赞赏.
解决方法 为简单起见,我会反转文件,保留前10000行,然后重新反转文件.它使得文件就地保存更复杂
source=file.txttemp=$(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行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)