0

「CLIENT TOTAL」以降のユニット行を次の名前まで削除したい。
"CLIENT TOTAL" 行以降の単位行 (つまり、30.0 と 15.0 の行) の数は、次の名前まで異なる場合があります。最も重要なことは、ファイルが区切られていないことです。以下は私の入力ファイルです。入力:

RELATIVITY/O F   32629 DT MBSA  
HALL             15.0             5,850
HALL             30.0            21,650
RELATIVITY/O F   34145 DT MBSA  
HALL             30.0            10,850
*CLIENT TOTAL RELATIVITY/O F     38,350
                 30.0            32,500
                 15.0             5,850
PFIZER           96607 DT MBSA  
HALL             15.0            32,700
HALL             30.0            21,300
PFIZER           96609 DT MBSA  
HALL             60.0            30,200
HALL             75.0           182,100
HALL             90.0            67,700
*CLIENT TOTAL PFIZER            334,000
                 90.0            67,700
                 30.0            21,300
                 15.0            32,700

以下のような出力が必要です。
出力:

RELATIVITY/O F   32629 DT MBSA  
HALL             15.0             5,850
HALL             30.0            21,650
RELATIVITY/O F   34145 DT MBSA  
HALL             30.0            10,850
PFIZER           96607 DT MBSA  
HALL             15.0            32,700
HALL             30.0            21,300
PFIZER           96609 DT MBSA  
HALL             60.0            30,200
HALL             75.0           182,100
HALL             90.0            67,700
4

1 に答える 1

1

これはあなたのために働くかもしれません:

awk '/CLIENT TOTAL/||/^[[:space:]]/{next}1' file

説明:

awk '
  # If line contains "CLIENT TOTAL" or starts with whitespace, skip it
  /CLIENT TOTAL/ || /^[[:space:]]/ { next }
  # Otherwise, print it
  1
' file
于 2014-07-09T14:13:15.287 に答える