2016-07-12 37 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' 

如果没有分隔符,则第一个字段将包含整行。