2016-07-12 78 views
0

我驚奇地發現應用過濾器,當你這樣做:AWK:只有字段分隔存在

回聲「你好」 | awk -F'|' '{打印$ 1;}'

你:

你好

如何給予回報沒有什麼字段分隔符 '|'沒有在線?

我這樣做是爲了提取日誌行開頭的日期,但有些行不是以日期開頭,然後給我這個問題。謝謝,我在awk中很新。

+0

這可能是[The XY Problem](http://xyproblem.info/)的一個例子。編輯您的問題以包含簡潔,可測試的樣本輸入和預期輸出,以便我們可以爲您提供幫助。 –

回答

1

你可以做到這一點

echo "hello" | awk -F'|' 'NF>1 {print $1}' 

echo "hello|1" | awk -F'|' 'NF>1 {print $1}' 
hello 

只有當你有多個字段,返回的第一個字段

上的文件

cat testing 
record1|val1 
record2|val2 
record3 
record4|val4 

awk -F'|' 'NF>1 {print $1}' testing 
record1 
record2 
record4 
+0

是的,這是我想要的,謝謝! –

1

或者,你可以使用

awk -F'|' '$1==$0' 

如果沒有分隔符,則第一個字段將包含整行。