【问题标题】:sed to operate on a range of lines plus a single linesed 对一系列行加上单行进行操作
【发布时间】:2021-02-11 20:47:32
【问题描述】:

假设我有一个文件file.txt

hello 
world
hi
there
this
wow

我知道 sed 可以在一行上运行,例如:

sed -n '2p' file.txt

或范围:

sed -n '2,4p' file.txt

但是如何在一个特定的行加上一个范围?

sed -n '1line and 4,5' file.txt 或用文字打印第一行和第 4 行到第 5 行的范围??

【问题讨论】:

  • 附加的欺骗是错误的(它没有回答OP的完整问题,它只回答了OP的部分问题,OP已经在OP的问题中提到了),所以重新打开了这个问题。

标签: sed


【解决方案1】:

请您尝试以下操作。使用 GNU sed 中的示例编写和测试。这将打印具有字符串 hello 的行,并将打印从第 2 行到第 4 行的行。

sed -n '/hello/p;2,4p' Input_file

或给出单行号以及行范围尝试以下操作:

sed -n '1p;2,4p' Input_file

解释:使用-n 选项首先停止所有行的打印。然后检查条件是否包含/hello 然后通过p 选项打印该行。之后给出以; 分隔的第二条语句以打印从第 2 行到第 4 行号的范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多