【问题标题】:Print specific lines of a file in Terminal [duplicate]在终端中打印文件的特定行[重复]
【发布时间】:2015-10-21 04:07:12
【问题描述】:

这看起来很傻,但我还没有找到一个工具可以做到这一点,所以我想我只是想在尝试自己编写代码之前先确定一个工具不存在:

有没有简单的方法来catless 文件的特定行?

我希望有这样的行为:

# -s == start && -f == finish
# we want to print lines 5 - 10 of file.txt
cat -s 5 -f 10 file.txt

即使是更简单的东西也会受到赞赏,但我只是不知道有什么工具可以做到这一点:

# print from line 10 to the end of the file
cat -s 10 file.txt

我认为这两个功能都可以通过 headtailwc -l 的混合轻松创建,但也许有一些我不知道的内置函数可以做到这一点?

【问题讨论】:

    标签: macos shell command-line terminal


    【解决方案1】:

    是的,awk 和 sed 可以提供帮助

    对于第 5 到 10 行

    awk 'NR>4&&NR<11' file.txt
    sed -n '5,10p' file.txt
    

    第 10 行到最后一行

    awk 'NR>9' file.txt
    sed -n '10,$p' file.txt
    

    【讨论】:

    • 也许还要注意,在这两者中,Awk 可能更值得进一步研究。 sed 可能很复杂,但无论如何您都需要手册来破译任何重要的脚本。 awk 是 shell 脚本的自然扩展,对于许多在 shell 脚本中不太自然的小任务来说是必需的(尽管像 Bash 这样的现代 shell 已经填补了许多这些漏洞;但绝不是全部) .
    猜你喜欢
    • 2019-01-17
    • 2014-05-18
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多