2014-07-09 54 views
0

我想删除基于“CLIENT TOTAL”和后续单元行直到下一个名称的行。
“CLIENT TOTAL”行之后的单元行数(即带有30.0和15.0的行)可能不同,直到下一个名称。 最重要的是该文件不分隔。 下面给出的是我的输入文件。 输入:如何删除unix中非分隔文件中的行

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 

我想下面我的输出。
OUTPUT:

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 
+0

'的grep -v '^ [*]' file' – Cyrus

回答

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 
+1

我会用这'awk'/ CLIENT TOTAL/||/^ [^ [:alnum:]]/{next} 1''来照顾空间和标签。 (你不需要';'1之前''' – Jotne

+0

好点。我不知道为什么我用substr!编辑.... – ooga

相关问题