linuxsed命令取后两行
-
要使用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年前 -
要使用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年前 -
在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年前