如何从dat文件中保存特定行

时间:2019-04-24 07:17:58

标签: sed

我有一个包含10000行的文件。我想在特定行上保存数据。如205、408行等。

sed -n "205,408,611,814,1017,1220,1423,1626,1829,2032,2235,2438,2641,2844,3047,3250,3453,3656,3859,4062,4265,4468,4671,4874,5077,5280,5483,5686,5889,6092,6295p' evecs.dat > ext.dat

显示错误: sed:-e表达式#1,字符8:未知命令:`,'

1 个答案:

答案 0 :(得分:1)

仅打印第二行和第四行:

sed -n '2p;4p' file

由于您有很多行:

  1. 准备一个包含所有行号的文件,在这里说我们要第二和第四:

    $ cat line
    2
    4
    
  2. 为sed打印命令准备一个字符串:

    $ x=$(sed 's/$/p/' line | paste -sd";")
    $ echo $x
    2p;4p
    
  3. 从原始文件中打印这些行:

    $ sed -n "$x" file