首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 删除文本前n行

在Linux系统中,如果你想要删除文件中的前n行,可以使用多种命令行工具来实现这一目的。以下是一些常用的方法:

使用 sed 命令

sed 是一个流编辑器,它可以用来执行文本替换、删除、插入等操作。要删除文件的前n行,可以使用以下命令:

代码语言:txt
复制
sed -i '1,nd' filename

这里的 n 是你想要删除的行数,filename 是你的文件名。-i 选项表示直接在文件上进行编辑。

例如,如果你想要删除 example.txt 文件的前5行,可以使用:

代码语言:txt
复制
sed -i '1,5d' example.txt

使用 awk 命令

awk 是一个强大的文本分析工具,它也可以用来删除文件的特定行。以下是使用 awk 删除前n行的命令:

代码语言:txt
复制
awk 'NR > n {print}' filename > temp && mv temp filename

在这个命令中,NRawk 的内置变量,代表当前的记录号(通常是行号)。n 是你想要跳过的行数。这个命令会将除了前n行之外的所有行打印到一个临时文件中,然后用 mv 命令将临时文件重命名为原文件名。

例如,删除 example.txt 文件的前5行:

代码语言:txt
复制
awk 'NR > 5 {print}' example.txt > temp && mv temp example.txt

使用 tail 命令

tail 命令通常用来显示文件的末尾部分,但它也可以与 -n 选项结合使用来显示除了前n行之外的所有行。然后可以将输出重定向回文件:

代码语言:txt
复制
tail -n +$(($n+1)) filename > temp && mv temp filename

这里的 +$(($n+1)) 表示从第n+1行开始显示。

例如,删除 example.txt 文件的前5行:

代码语言:txt
复制
tail -n +6 example.txt > temp && mv temp example.txt

注意事项

  • 在使用 -i 选项直接编辑文件时,sed 会创建一个备份文件,文件名通常是原文件名加上 .bak 后缀。如果你不想保留备份,可以在 -i 选项后加上一个空字符串,如 sed -i '' '1,5d' example.txt
  • 在执行这些命令之前,建议先备份原始文件,以防万一出现意外。

以上方法都是在Linux环境下常用的删除文件前n行的命令。根据你的具体需求和环境,可以选择最适合的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux 删除文本中的重复行

在进行文本处理的时候,我们经常遇到要删除重复行的情况。那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的。...shell> sort -k2n file | uniq 这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。...经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。 第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。...P; D' 最后附一个必须先用sort排序的文本的例子,当然,这个需要用sort排序的原因是很简单,就是后面算法设计的时候的“局部性”,相同的行可能分散出现在不同的区域,一旦有新的相同行出现,那么前面的已经出现的记录就被覆盖了...参考推荐: 删除文本中的重复行(sort+uniq/awk/sed)

8.6K20

linux根据日期时间批量删除文件(删除N天前的文件)

一、使用find先查出来,然后执行删除1、find 部分参数说明-amin -n: 最后一次访问发生在 n分钟 之内-amin n: 最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟-amin...+n: 最后一次访问发生在 (n+1)分钟 之外-atime -n: 最后一次访问发生在 n天 之内-atime n: 最后一次访问发生在 n天 至 (n+1)天 -atime +n: 最后一次访问发生在...(n+1)天 之外-cmin -n: 最后一次文件状态修改发生在 n分钟 之内-cmin n: 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟-cmin +n: 最后一次文件状态修改发生在...(n+1)天 之外2、使用 find 命令 先找到n天之外的文件(这里假设找到 3天前的文件)在/www/wwwroot/shengsi-zhejiang/public/uploads/spot/Array...天以前的所有类型的文件find /www/wwwroot/shengsi-zhejiang/public/uploads/spot/Array/face -name "*" -mtime +33、将查找到的这些文件执行删除利用

2K00
  • linux中删除文件的最后N行小总结

    现在,假设我们要从rumenz.txt文件中删除最后三行 ( n=3 ) 。...sed命令及其地址范围,我们可以快速删除文件中从给定行号开始到最后一行的行: sed 'GIVEN`LINE`NO, $d' input_file 例如,让我们从第5行删除直到rumenz.txt的结尾...但是,如果我们可以颠倒输入文件中的行顺序,问题就会变成从文件中删除前 n 行。一个简单的 sed 单行sed 1,n d可以删除前n行。之后,如果我们再次反转线条,我们的问题就解决了。...'1,3 d' | tac 1 rumenz.com 2 rumenz 3 入门 4 小站 5 入门小站 6 小站入门 7 门小 使用awk命令 该AWK命令是一个功能强大的文本处理工具...第一遍后,total变量保存了输入文件中的总行数 FNR==total-n+1{exit} 1:这是第二遍。如果FNR==total-n+1,则表示我们已经到达需要删除的第一行,因此我们退出。

    7.8K10

    Linux自动清理N天前目录文件

    Linux服务器每周会产生一次全局备份文件,大小约100G左右,需要定期清理。 工作时间网站访问大,服务器I/O高的时候删除大数据会对服务器状态产生不好的影响。于是想利用计划任务自动执行。...2013-12-30 -maxdepth 1:设置查找目录深度为1,只在/backup目录下查找,如不加此参数会将下级目录中的文件都列出 -type d:设置查找类型为目录 -mtime +28:查找28天前的目录...rsync --delete-before -d /data/test/ {} \; 此处没有使用rm,原因是rsync在删除大量文件时比rm更具优势,具体原因请参考 《为什么rsync能够快速删除400000...提醒: 使用命令前,应先在服务器上试用查找部分的命令,如只查找出要清理的目录,则可以继续。 不排除某些系统会将./目录查找出来,一定要看清楚,防止出现意外情况。...另外可将-exec替换为-ok,效果相同,在删除前提醒用户确认。

    1.7K10

    ​Linux 打印文本部分行内容(前几行,指定行,中间几行,跨行,奇偶行,后几行,最后一行,匹配行)

    背景 打印对账文件最后一行汇总信息,通过钉钉定时发送到运维群。顺便总结下 Linux 打印文本部分行内容的各种方法。...测试文本 # 生成测试文本内容 $ seq -f "%02g daodaotest" 1 10 > test.txt # 查看测试文本内容,并显示行号 $ cat -n test.txt 1...N 行内容 # head 打印前 5 行内容 $ head -5 test.txt $ head -n 5 test.txt # sed 打印前 5 行内容 $ sed -n '1,5p' test.txt...# awk 打印前 5 行内容 $ awk 'NR<6' test.txt 打印指定行内容 # sed 打印第 5 行内容 $ sed -n '5p' test.txt # awk 打印第 5...i' test.txt ## m~np:m 表示起始行;~2 表示:步长 $ sed -n '1~2p' test.txt ## 先打印第 1 行,执行 n 命令读取当前行的下一行,放到模式空间,后面再没有打印模式空间行操作

    13.6K32

    技巧:文本超过N行折叠内容并显示“...查看全部”

    (比如3行),不超过n行正常显示;超过n行则在最后一行尾部显示“展开”或“查看全部”之类的按钮,点击按钮则展开显示全部内容,或者跳转到其它页面展示所有内容。...多行文本超过指定行数折叠 二、实现原理 纯CSS很难完美实现这个功能,所以还得借助JS来实现,实现思路大体相似,都是判断内容是否超过指定行数,超过则截取字符串的前x个字符,然后然后和“...查看全部”拼接在一起...这个长度满足从x的位置截断字符串,前半部分+“...查看全部”等文字刚好不会超出指定行数N,但是多截取一个字,则会超出N行。...最直观的想法就是直接遍历,让x从0开始增长到显示文本总长度,对于每个x值,都计算一次文字是否超过N行,没超过则加继续遍历,超过则获得了合适的长度x - 1,跳出循环。...第一次先以文本长度为截取长度,计算是否超过N行,没超过则停止计算;超过则取1/2长度进行截取,如果此时没超过N行,则在1/2长度到文本长度之间继续二分查找,如果超过则在0到1/2文本长度中继续二分查找。

    2.8K10

    技巧:文本超过N行折叠内容并显示“...查看全部”

    (比如3行),不超过n行正常显示;超过n行则在最后一行尾部显示“展开”或“查看全部”之类的按钮,点击按钮则展开显示全部内容,或者跳转到其它页面展示所有内容。...多行文本超过指定行数折叠 二、实现原理 纯CSS很难完美实现这个功能,所以还得借助JS来实现,实现思路大体相似,都是判断内容是否超过指定行数,超过则截取字符串的前x个字符,然后然后和“...查看全部”拼接在一起...这个长度满足从x的位置截断字符串,前半部分+“...查看全部”等文字刚好不会超出指定行数N,但是多截取一个字,则会超出N行。...最直观的想法就是直接遍历,让x从0开始增长到显示文本总长度,对于每个x值,都计算一次文字是否超过N行,没超过则加继续遍历,超过则获得了合适的长度x - 1,跳出循环。...第一次先以文本长度为截取长度,计算是否超过N行,没超过则停止计算;超过则取1/2长度进行截取,如果此时没超过N行,则在1/2长度到文本长度之间继续二分查找,如果超过则在0到1/2文本长度中继续二分查找。

    2.5K20

    iOS_Swift 实现UITextView,显示前n行,点击显示“更多”,再点击“收起”效果

    MOAttributedTextView 仅一个类Class实现:显示前n行文案,点击展开,再点击收起效果。...NSMutableAttributedString实现 1、Effect display Test1:直接使用效果如下: Test2:在TableViewCell里使用效果如下: 2、核心代码: // 行高...closeHeight = openHeight if lessLine < allLine { closeHeight = CGFloat(lessLine) * lineHeight } 获得前n...行的文案:(难点在此,差点放弃,最后在 ios获取UILabel每行显示的文字 这篇文章里找到解决方案) let attributedString = NSMutableAttributedString...linkRange) attributedText = attributedString How to use and demo see here MOAttributedTextView 参考: iOS 富文本添加点击事件

    1.8K20
    领券