【问题标题】:select multiple lines using the linux command sed使用 linux 命令 sed 选择多行
【发布时间】:2012-09-22 20:45:39
【问题描述】:

我有一个示例 [文件],我想抓取第 3-6 行和第 11-13 行,然后使用一行命令进行排序并将其保存为 3_6-11_13。这些是我迄今为止使用的命令,但我没有得到想要的输出:

sed -n '/3/,/6/p'/11/,/13/p file_1 > file_2 | sort -k 2 > file_2  & sed -n 3,6,11,13p file_1 > file_2 | sort -k 2 file_2.

有没有更好的方法来缩短它。我曾考虑过使用 awk,但到目前为止我一直使用 sed。

【问题讨论】:

    标签: linux shell sed awk


    【解决方案1】:

    sed 使用 -e 选项组合多个命令

    $ sed -e 'comm' -e 'comm' file.txt
    

    或者您可以使用分号分隔命令

    $ sed 'comm;comm;comm' file.txt
    

    【讨论】:

      【解决方案2】:

      使用sed,您可以按数字指定地址,如下所示:

      sed -n '3,6p'
      

      -n 是为了防止sed 自动打印输出。

      然后,如果您使用的是gsed,则可以通过用分号分隔这些命令来运行多个命令:

      sed -n '3,6p; 11,13p' | sort -k2 > 3_6-11_13
      

      【讨论】:

      • 谢谢蒂姆波特。我使用了您建议的稍作修改的版本。实际上,我在当天早些时候尝试过您的建议,但是在 '3,6p;.再次感谢。
      猜你喜欢
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 2012-09-23
      • 2014-03-05
      • 2015-12-26
      • 2021-07-25
      相关资源
      最近更新 更多