-1

私は、この問題がこれまで何度もわずかに異なる方法で尋ねられたことを知っています。しかし、私はそれらのソリューションを適応させることができませんでした。次の内容のファイルheader.outがあります。

// some text before this 
            :type = "Primary Grid: Tau Format" ;
            :deformation_timestep = 0. ;
            :deformation_alpha = 0. ;
            :deformation_dalpha = 0. ;
            :deformation_h = 0. ;
            :deformation_dh = 0. ;
            :deformation_step = 0 ;
            :adaptation_level = 0 ;
            :connectivity_check = 1 ;
            :volume_check = 1 ;
            :point_check = 1 ;
            :test_lib_check = 1 ;
            :periodic_pairs_check = 1 ;
            :is_balanced = 0 ;
            :preserve_piles = 0 ;
            :marker_1 = "WingMidTrailing" ;
            :marker_2 = "WingMidLower" ;
            :marker_3 = "WingMidUpper" ;
            :marker_4 = "WingSide" ;
            :marker_5 = "Farfield" ;
            :marker_6 = "SymmetryPlane" ;
            :marker_7 = "WingInnerLower" ;
            :marker_8 = "WingInnerUpper" ;
            :marker_9 = "WingInnerTrailing" ;
            :marker_10 = "WingOuterLower" ;
            :marker_11 = "WingOuterUpper" ;
            :marker_12 = "WingOuterTrailing" ;
 }

文字列「SymmetryPlane」に属するマーカーのIDを抽出する必要があるため、この場合、出力として6を使用します。sedおよび正規表現を使用したすべての試行が失敗しました。私が試したことは:

sed 's/.*marker_\(.*\) = "SymmetryPlane.*/\1/' header.out

しかし、これは私にしか与えません

            :type = "Primary Grid: Tau Format" ;
            :deformation_timestep = 0. ;
            :deformation_alpha = 0. ;
            :deformation_dalpha = 0. ;
            :deformation_h = 0. ;
            :deformation_dh = 0. ;
            :deformation_step = 0 ;
            :adaptation_level = 0 ;
            :connectivity_check = 1 ;
            :volume_check = 1 ;
            :point_check = 1 ;
            :test_lib_check = 1 ;
            :periodic_pairs_check = 1 ;
            :is_balanced = 0 ;
            :preserve_piles = 0 ;
            :marker_1 = "WingMidTrailing" ;
            :marker_2 = "WingMidLower" ;
            :marker_3 = "WingMidUpper" ;
            :marker_4 = "WingSide" ;
            :marker_5 = "Farfield" ;
6
            :marker_7 = "WingInnerLower" ;
            :marker_8 = "WingInnerUpper" ;
            :marker_9 = "WingInnerTrailing" ;
            :marker_10 = "WingOuterLower" ;
            :marker_11 = "WingOuterUpper" ;
            :marker_12 = "WingOuterTrailing" ;
}

なぜこれが起こっているのかわかりません。

前もって感謝します!

4

1 に答える 1

2

出力を抑制し(-n)、置換後に印刷します(p):

sed -n 's/.*marker_\(.*\) = "SymmetryPlane.*/\1/p' header.out
于 2012-12-03T08:29:06.390 に答える