2010-09-13 57 views
0

我想打印第三個字段(由:分隔的字段)不以#開始的所有行(表示第三個字段是註釋)。請注意,在#和#之間可能存在空格。從某個文件打印的行不是從某個字段開始

示例輸入:

A:B:#hdfghdfg

A:B:#dfdfdfg

A:B:C

希望的輸出:

A:B :C

我試過了:

AWK -F: '$ 3〜/ ^#/ {打印}' run_out5> run_out6

,但它不工作

感謝,

Jagrati

回答

4

正則表達式可能是一個很小的位清潔:

awk -F: '$3 !~ /^ ?#/ { print }' 

通常最好期待重複空格(空格或製表符),而不是一個空格字符,它可以看看IDE印刷輸出的ntical。

awk -F: '$3 !~ /^[[:space:]]*#/ { print }' 
0

使用!~選擇與正則表達式不匹配的行。
調整正則表達式,以便它將字段與前導空格匹配。

awk -F : '$3 !~ /^ *#/ {print}' 
相關問題