linux命令删除文件最后两行

fiy 其他 192

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux系统中,可以使用多种命令删除文件的最后两行。以下是几种常见的方法:

    方法一:使用sed命令
    “`
    sed -i ‘$-1,$d’ 文件名
    “`
    此命令将会在原始文件上进行操作,$-1表示倒数第二行,$表示最后一行,$-1,$表示从倒数第二行到最后一行的范围,d表示删除。

    方法二:使用head和wc命令组合
    “`
    lines=$(wc -l < 文件名)head -n $((lines-2)) 文件名 > 临时文件名
    mv 临时文件名 文件名
    “`
    首先用wc命令统计总行数,然后使用head命令截取除最后两行外的内容,并将结果重定向到一个临时文件中,最后再将临时文件重命名为原文件名。

    方法三:使用tail和rev命令组合
    “`
    tail -n +1 文件名 | rev | tail -n +3 | rev > 临时文件名
    mv 临时文件名 文件名
    “`
    首先使用tail命令获取除最后两行外的内容,然后使用rev命令将每一行进行翻转,再次使用tail命令获取倒数第三行开始的所有内容,最后再次使用rev命令将每一行翻转回来,将结果重定向到临时文件,并将临时文件重命名为原文件名。

    方法四:使用awk命令
    “`
    awk ‘NR!=n-1 && NR!=n’ n=$(wc -l < 文件名) 文件名 > 临时文件名
    mv 临时文件名 文件名
    “`
    在awk命令中,NR表示当前行号,$0表示当前行的内容。通过指定NR的值来删除相应的行,将结果重定向到临时文件,并将临时文件重命名为原文件名。

    以上是几种常用的方法,你可以根据需要选择其中的一种来删除文件的最后两行。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要在Linux命令中删除文件的最后两行,可以使用以下几种方法:

    1. 使用sed命令:
    “`shell
    sed -i ‘$d; $d’ filename
    “`
    这个命令使用sed工具来编辑文件。-i选项用于直接修改文件,而不是输出到终端。`$d`表示删除最后一行,`$d`表示再删除一次,即删除倒数第二行。

    2. 使用head命令和管道:
    “`shell
    head -n $(($(wc -l < filename) - 2)) filename > temp && mv temp filename
    “`
    这个命令使用head命令来截取文件的前n行,`-n`选项用于指定截取的行数。`$(($(wc -l < filename) - 2))`用于计算文件的总行数,减去2就是要截取的行数。`>`用于将截取的内容写入一个临时文件,然后使用mv命令将临时文件重命名为原文件名,实现了删除最后两行的效果。

    3. 使用awk命令:
    “`shell
    awk ‘NR < (FNR - 1)' filename > temp && mv temp filename
    “`
    这个命令使用awk命令来处理文本文件。`NR`表示记录的行数,`FNR`表示当前文件的记录数。`NR < (FNR - 1)`表示当NR小于当前文件的记录数-1时,输出该行。将处理后的内容写入一个临时文件,然后使用mv命令将临时文件重命名为原文件名,实现了删除最后两行的效果。4. 使用perl命令:```shellperl -i -ne 'print unless $. > ($.-2)’ filename
    “`
    这个命令使用perl命令来处理文本文件。`-i`选项用于直接修改文件,而不是输出到终端。`$.`表示当前行数,`unless $. > ($.-2)`表示除非当前行数大于当前行数减2时才输出该行,实现了删除最后两行的效果。

    5. 使用vim编辑器命令:
    “`shell
    vim -c ‘1,$-2d | x’ filename
    “`
    这个命令使用vim编辑器,在命令模式下执行命令。`1,$-2d`表示从第一行到倒数第二行删除,`x`表示保存并退出文件。

    以上是在Linux命令中删除文件的最后两行的几种方法,你可以根据自己的需求选择适合的方法来删除文件的最后两行。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统中,可以使用一些命令来删除文件的最后两行。下面是一种常用的方法:

    1. 使用sed命令删除文件的最后两行。Sed是一个强大的文本处理工具,可以用于编辑和转换文本文件。

    “`
    sed -n -e :a -e ‘1,2!{P;N;D;};N;ba’ filename > temp.txt
    “`

    上述命令将文件的内容复制到一个名为temp.txt的临时文件中,但排除了最后两行。你可以将”filename”替换为你需要删除行的文件的名称。

    2. 测试并验证删除的行是否正确。你可以使用cat命令输出temp.txt文件的内容,查看最后两行是否已被删除。

    “`
    cat temp.txt
    “`

    如果你确定删除的行正确无误,可以继续进行下一步。

    3. 删除原始文件并重命名临时文件。使用rm命令删除原始文件,然后使用mv命令将临时文件重命名为原始文件的名称。

    “`
    rm filename
    mv temp.txt filename
    “`

    替换”filename”为你要删除行的文件的名称。

    4. 检查删除的结果。再次使用cat命令输出文件的内容,查看删除行后的文件是否符合预期。

    “`
    cat filename
    “`

    确保你检查了文件的内容并满意后,你已成功删除了文件的最后两行。

    这是一种常用的方法,你也可以使用其他文本处理工具和命令来实现相同的效果。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部