如何在Linux命令行中显示文件的特定行
时间:2020-03-05 15:26:32 来源:igfitidea点击:
如何在Linux命令行的文件中找到第n行?
如何显示行号x到行号y?
在Linux中,有几种方法可以达到相同的结果。
从文件中打印特定行也不例外。
要显示第13行,可以使用head和tail的组合:
head -13 file_name | tail +13
或者,我们可以使用sed命令:
sed -n '13p' file.txt
要显示从20到25的行号,可以将head和tail命令组合如下:
head -25 file_name | tail +20
或者,我们可以使用sed命令,如下所示:
sed -n '20,25p' lines.txt
接下来是每个命令的详细说明。
我还将展示为此目的使用awk命令。
使用head和tail命令显示特定的行
打印单个特定行
在以下功能的行号x中使用head和tail命令的组合:
head -x file_name | tail +x
我们可以将x替换为要显示的行号。
因此,假设我们要显示文件的第13行。
Hyman@theitroad:~$head -13 lines.txt | tail +13 This is line number 13
说明:我们可能已经知道head命令从头开始获取文件的行,而tail命令从头开始获取文件的行。
该命令的“ head -x”部分将获取文件的前x行。
然后它将把此输出重定向到tail命令。
tail命令将显示从行号x开始的所有行。
很显然,如果从顶部开始走13条线,则从13号开始到末尾的线将是第13条线。
这就是该命令的逻辑。
打印特定范围的行
现在,让我们结合使用head和tail命令来显示多于一行。
假设我们要显示从x到y的所有行。
这还包括第x和yth行:
head -y lines.txt | tail +x
让我们举一个实际的例子。
假设我们要打印从行号20到25的所有行:
Hyman@theitroad:~$head -25 lines.txt | tail +20 This is line number 20 This is line number 21 This is line number 22 This is line number 23 This is line number 24 This is line number 25
使用SED显示特定行
强大的sed命令提供了几种打印特定行的方法。
例如,要显示第10行,可以按以下方式使用sed:
sed -n '10p' file.txt
-n禁止输出,而p命令打印特定行。
Sed是Linux sysadmins必不可少的命令。
要显示从行号x到行号y的所有行,请使用以下命令:
Hyman@theitroad:~$sed -n '3,7p' lines.txt This is line number 3 This is line number 4 This is line number 5 This is line number 6 This is line number 7
使用AWK打印文件中的特定行
awk命令可能看起来很复杂,而且肯定涉及学习曲线。
但是,与sed一样,awk在编辑和处理文件内容方面也非常强大。
Hyman@theitroad:~$awk 'NR==5' lines.txt This is line number 5
NR表示“当前记录号”。
请阅读我们详细的AWK命令教程以获取更多信息。
要显示从x到y的所有行,可以按以下方式使用awk命令:
Hyman@theitroad:~$awk 'NR>=20 && NR<=25' lines.txt This is line number 20 This is line number 21 This is line number 22 This is line number 23 This is line number 24 This is line number 25