AWK:仅在存在字段分隔符时应用过滤器

时间:2016-07-12 15:46:16

标签: awk

我惊讶地发现当你这样做时:

  回声“你好”| awk -F'|' '{print $ 1;}'

你得到:

  

您好

如果字段分隔符'|'如何返回任何内容在线没有?

我这样做是为了在日志行的开头提取日期,但有些行不是以日期开头然后给我这个问题。谢谢,我是awk的新手。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

或者,您可以使用

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

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