Linux 中 awk中逗号与分号的差异

 

001、

[root@localhost test]# ls
a.txt
[root@localhost test]# cat a.txt
EU60 AFS ANM GOA
EU60 AKK ANM GOA
EU60 ARI ANM GOA
[root@localhost test]# awk '$1 = "aaa"; $3 = "bbb"' a.txt     ## 每一个分号表示一个条件;awk默认执行一次动作
aaa AFS ANM GOA
aaa AFS bbb GOA
aaa AKK ANM GOA
aaa AKK bbb GOA
aaa ARI ANM GOA
aaa ARI bbb GOA
[root@localhost test]# awk '$1 = "aaa", $3 = "bbb"' a.txt    ## 逗号,表示连续的条件
aaa AFS bbb GOA
aaa AKK bbb GOA
aaa ARI bbb GOA
[root@localhost test]# awk '{$1 = "aa", $3 = "bbb"; print $0}' a.txt    ## 在分号内,不允许条件逗号
awk: cmd. line:1: {$1 = "aa", $3 = "bbb"; print $0}
awk: cmd. line:1:           ^ syntax error
[root@localhost test]# awk '{$1 = "aa"; $3 = "bbb"; print $0}' a.txt
aa AFS bbb GOA
aa AKK bbb GOA
aa ARI bbb GOA

image

 。

 

002、

[root@localhost test]# cat a.txt
EU60 AFS ANM GOA
EU60 AKK ANM GOA
EU60 ARI ANM GOA
[root@localhost test]# awk '$1=$1; { print $0}' a.txt
EU60 AFS ANM GOA
EU60 AFS ANM GOA
EU60 AKK ANM GOA
EU60 AKK ANM GOA
EU60 ARI ANM GOA
EU60 ARI ANM GOA
[root@localhost test]# awk '$1=$1;$1=$1; { print $0}' a.txt
EU60 AFS ANM GOA
EU60 AFS ANM GOA
EU60 AFS ANM GOA
EU60 AKK ANM GOA
EU60 AKK ANM GOA
EU60 AKK ANM GOA
EU60 ARI ANM GOA
EU60 ARI ANM GOA
EU60 ARI ANM GOA

image

 。

 

posted @ 2026-07-11 10:56  小鲨鱼2018  阅读(9)  评论(0)    收藏  举报