在awk:
1 tolower($1) ~ /mary/ { print "CI Record: " $0; }
2 $0 !~ /Mary/ { print "Not Mary: " $0; }
3 $1 == "Mary" { print "Mary Record: " $0; }
Run Code Online (Sandbox Code Playgroud)
为什么1和3比较$1,并2使用$0?
小智 26
在awk中,$0是整个参数行,而$1只是由空格分隔的参数列表中的第一个参数.因此,如果我通过awk放"玛丽有一只小羊羔",$1是"玛丽",而是$0"玛丽有一只小羊羔".第二行是尝试在给予awk的整行中找到子串"Mary".
anu*_*ava 10
实际上,# 2由于这种语法,示例正在使用正则表达式
/regex/
Run Code Online (Sandbox Code Playgroud)
这意味着在您的示例中,如果Mary在整行($0)中找不到文字文本,则执行awk代码.
而$1 == "Mary"在文字文本Mary和字段#1($1)之间进行直接比较.
最后tolower($1) ~ /mary/再次在字段#1上使用ignre-case正则表达式匹配,这意味着如果$1有文本mary(ignore-case)则执行其余的awk代码.
| 归档时间: |
|
| 查看次数: |
45808 次 |
| 最近记录: |