grepした結果のうち、特定の行のみ取り出す方法


grepした結果のうち、特定の行のデータのみを取り出したいのですが  
うまくいかないので、原因を知りたいです。

元ファイル

[code]

          Lost River=70  Delta TDR-98 TDS  
          Lost River=75  Delta TDR-10 TDS  
          AW F=75  Delta TDR-20 TDS  
          Lost River=30  Delta TDR-97 TDS  
    
[/code]

スクリプト

[code]

    #!/bin/bash
    cat $1 |grep Delta | head -n 1 | tail -n 1 | tail -c 10
    cat $1 |grep Delta | head -n 2 | tail -n 1 | tail -c 10
    cat $1 |grep Delta | head -n 4 | tail -n 1 | tail -c 10
    
[/code]

出力したい値

[code]

    -98
    -10
    -97
    
[/code]

現在の出力

[code]

    -98-10-97
    
[/code]




欲しいのは本当に行指定もしくは検出番号なのでしょうか？おそらく条件にマッチした行なのではないかと思います。間違ってたらすみません。ちなみにその場合、こういう処理は
grep よりも sed が向いてると思います。

[code]

    $ cat input | sed -n 's/^Lost\s\+River=[0-9]\+\s\+Delta\s\+TDR\(-[0-9]\+\).*/\1/p'
    -98
    -10
    -97
    
[/code]




欲しいのは本当に行指定もしくは検出番号なのでしょうか？おそらく条件にマッチした行なのではないかと思います。間違ってたらすみません。ちなみにその場合、こういう処理は
grep よりも sed が向いてると思います。

[code]

    $ cat input | sed -n 's/^Lost\s\+River=[0-9]\+\s\+Delta\s\+TDR\(-[0-9]\+\).*/\1/p'
    -98
    -10
    -97
    
[/code]

