linuxsed命令取后两行

不及物动词 其他 39

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要使用sed命令取文件中的后两行,可以通过以下方式实现:

    “`shell
    sed -n ‘$-1,$p’
    “`

    解释:
    – `-n` 参数用于关闭sed的自动打印功能,这样sed只会根据命令进行操作,不会输出任何其他内容。
    – `’$-1,$p’` 是sed命令的模式部分,`$-1` 表示倒数第二行,`$` 表示最后一行,`p` 表示打印。

    只需将 `` 替换为你想要操作的文件的路径和名称即可。执行命令后,sed将打印出文件的后两行。

    例如,如果你想要取名为 “example.txt” 的文件的后两行,可以运行以下命令:

    “`shell
    sed -n ‘$-1,$p’ example.txt
    “`

    这样就会打印出 “example.txt” 文件的倒数第二行和最后一行。

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

    要使用Linux命令来取后两行,可以使用如下的方法:

    1. 使用tail命令:tail命令用于从文件的末尾开始显示内容,默认显示最后10行。使用“tail -n”可以指定显示的行数。如果要显示后两行,可以使用以下命令:
    “`
    tail -n 2 文件名
    “`
    例如,要显示文件test.txt的后两行,可以使用以下命令:
    “`
    tail -n 2 test.txt
    “`

    2. 使用sed命令来取后两行:sed命令用于对文本进行流编辑,可以用来提取文件中的特定行。可以使用从末尾开始的行数和p命令来提取后两行。以下是一个示例:
    “`
    sed -n ‘$-1,$p’ 文件名
    “`
    例如,要提取文件test.txt的后两行,可以使用以下命令:
    “`
    sed -n ‘$-1,$p’ test.txt
    “`

    3. 使用awk命令来取后两行:awk是一种文本处理工具,可以用于提取文件中的特定行。可以使用NR变量和FNR变量来计算行数,然后使用if语句来筛选出后两行。以下是一个示例:
    “`
    awk ‘{a[NR]=$0} END{print a[NR-1]”\n”a[NR]}’ 文件名
    “`
    例如,要提取文件test.txt的后两行,可以使用以下命令:
    “`
    awk ‘{a[NR]=$0} END{print a[NR-1]”\n”a[NR]}’ test.txt
    “`

    4. 使用head命令和逆序输出:可以使用head命令结合逆序输出来取后两行。以下是一个示例:
    “`
    head -n 文件名 | tac | head -n 2 | tac
    “`
    例如,要取文件test.txt的后两行,可以使用以下命令:
    “`
    head -n test.txt | tac | head -n 2 | tac
    “`

    5. 使用rev命令和逆序输出:可以使用rev命令结合逆序输出来取后两行。以下是一个示例:
    “`
    rev 文件名 | cut -d$’\n’ -f1,2 | rev
    “`
    例如,要取文件test.txt的后两行,可以使用以下命令:
    “`
    rev test.txt | cut -d$’\n’ -f1,2 | rev
    “`

    总结:以上就是几种在Linux中取得后两行的方法。根据不同的需求,可以选择适合自己的命令来实现目标。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux操作系统中,可以使用`sed`命令取后两行。Sed是用于对文本进行处理的流编辑器,它可以读取输入流(或文件),对其中的文本进行修改,然后将结果输出到标准输出。下面是使用`sed`命令取后两行的方法和操作流程:

    **步骤1:创建测试文件**

    首先,为了演示目的,我们需要创建一个测试文件,可以使用以下命令来创建一个名为`test.txt`的文本文件,并向其中写入一些内容:

    “`
    echo “Line 1” > test.txt
    echo “Line 2” >> test.txt
    echo “Line 3” >> test.txt
    echo “Line 4” >> test.txt
    echo “Line 5” >> test.txt
    echo “Line 6” >> test.txt
    “`

    **步骤2:使用sed命令取后两行**

    现在我们已经有了一个名为`test.txt`的文件,里面包含了6行文本。我们可以使用`sed`命令来取后两行,以下是具体的命令:

    “`
    sed -n -e :a -e ‘$q;N;3,$D;ba’ test.txt
    “`

    我们来一步步解释这个命令:

    – `-n`参数表示执行静默模式,只输出经过处理的结果,而不会输出原始文本。

    – `-e`参数用于指定要执行的sed脚本。我们在这里使用了两个`-e`参数,分别表示要执行的两条sed命令。

    – `:a`是一个标签,用于在后面的命令中作为跳转目标。

    – `’$q’`命令用于退出处理流程,在处理到文件的最后一行时执行。

    – `N`命令用于将当前行和下一行一起读取到模式空间(pattern space)中。

    – `3,$D`命令用于删除从第三行到最后一行的内容。

    – `ba`命令用于无条件地跳转到标签`a`所指定的位置,即跳转到第3行之前。

    执行上述命令后,将输出`test.txt`文件的后两行:

    “`
    Line 5
    Line 6
    “`

    这样,我们成功地使用`sed`命令取得了`test.txt`文件的后两行。

    总结:

    通过以上的方法,我们可以使用`sed`命令取得一个文本文件的后两行。这个方法的关键在于使用了`N`命令将当前行和下一行一起读入模式空间,然后使用`3,$D`命令删除掉了从第三行到最后一行的内容。

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

400-800-1024

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

分享本页
返回顶部