编写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 命令都可以方便地选择并显示文件中指定行号的内容。根据个人偏好或者脚本需求,你可以选择使用其中一种方法。