编写Shell显示file.txt的1,3,5,7,10,15行?
参考回答
要显示 file.txt
的第 1, 3, 5, 7, 10, 15 行,可以使用 sed
命令或者 awk
命令来实现。这里给出两种常见方法:
方法 1:使用 sed
命令
sed -n '1p;3p;5p;7p;10p;15p' file.txt
详细讲解与拓展
sed
命令:-n
:表示禁止sed
默认的输出。只有在使用p
(打印)时,才会输出结果。'1p;3p;5p;7p;10p;15p'
:表示打印第 1, 3, 5, 7, 10, 15 行。每个p
后面的行号是需要显示的行。file.txt
:指定要处理的文件。
这条命令会逐行检查并打印符合条件的行。
-
举例:
假设file.txt
内容如下:Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11 Line 12 Line 13 Line 14 Line 15
执行
sed -n '1p;3p;5p;7p;10p;15p' file.txt
后的输出是:Line 1 Line 3 Line 5 Line 7 Line 10 Line 15
方法 2:使用 awk
命令
awk 'NR==1 || NR==3 || NR==5 || NR==7 || NR==10 || NR==15' file.txt
详细讲解与拓展
awk
命令:NR
是awk
内置的变量,表示当前处理的行号。NR==1 || NR==3 || NR==5 || NR==7 || NR==10 || NR==15
表示输出行号为 1, 3, 5, 7, 10, 15 的行。file.txt
:指定要处理的文件。
这条命令也会输出文件中指定的行。
-
举例:
假设file.txt
内容与上面的例子相同,执行awk 'NR==1 || NR==3 || NR==5 || NR==7 || NR==10 || NR==15' file.txt
后的输出是:Line 1 Line 3 Line 5 Line 7 Line 10 Line 15
总结
通过 sed
或 awk
命令都可以方便地选择并显示文件中指定行号的内容。根据个人偏好或者脚本需求,你可以选择使用其中一种方法。