编写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

详细讲解与拓展

  1. sed 命令:
    • -n:表示禁止 sed 默认的输出。只有在使用 p(打印)时,才会输出结果。
    • '1p;3p;5p;7p;10p;15p':表示打印第 1, 3, 5, 7, 10, 15 行。每个 p 后面的行号是需要显示的行。
    • file.txt:指定要处理的文件。

    这条命令会逐行检查并打印符合条件的行。

  2. 举例:
    假设 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

详细讲解与拓展

  1. awk 命令:
    • NRawk 内置的变量,表示当前处理的行号。NR==1 || NR==3 || NR==5 || NR==7 || NR==10 || NR==15 表示输出行号为 1, 3, 5, 7, 10, 15 的行。
    • file.txt:指定要处理的文件。

    这条命令也会输出文件中指定的行。

  2. 举例:
    假设 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
    

总结

通过 sedawk 命令都可以方便地选择并显示文件中指定行号的内容。根据个人偏好或者脚本需求,你可以选择使用其中一种方法。

发表评论

后才能评论