Shell 计数单个cote中的分号数
嗨,我想数一数单列中分号的数目Shell 计数单个cote中的分号数,shell,Shell,嗨,我想数一数单列中分号的数目 UPDATE T1 FROM abc T1,def T2 SET RECORD_END_TS = T2.a - INTERVAL '1' SECOND ,updatets = CURRENT_TIMESTAMP(6) WHERE T1.name = 'first;last'AND T1.address = 'last;address'; 在我的查询中有两个单独的cote语句 WHERE T1.name = 'first;last'AND T1.address =
UPDATE T1 FROM abc T1,def T2 SET RECORD_END_TS = T2.a - INTERVAL '1' SECOND
,updatets = CURRENT_TIMESTAMP(6) WHERE T1.name = 'first;last'AND T1.address = 'last;address';
在我的查询中有两个单独的cote语句
WHERE T1.name = 'first;last'AND T1.address = 'last;address';
我希望输出为2,因为在单个cote中有两个分号语句,但使用grep命令得到的结果是3
我和格雷普试过了
total_semicolon=`DML| grep -o ';' | wc -l`
*DML是完整的查询尝试一下这一行:
awk -F"'" '{for(i=1;i<=NF;i++)c+=(i%2==0?gsub(/;/,"",$i):0)}END{print c}'
一个单引号对可以包装多个分号吗?像
'a;BCd'
是的,您的输出是3,因为您有3个分号:一:(第一;最后)第二:(最后;地址)和第三(地址';)。
kent$ echo "foo ';b;;;' bar;;;;;;;;;;;"|awk -F"'" '{for(i=1;i<=NF;i++)c+=(i%2==0?gsub(/;/,"",$i):0)}END{print c}'
4
kent$ echo "foo ';b;;;' 'foo;,bar;' ;;;;"|awk -F"'" '{for(i=1;i<=NF;i++)c+=(i%2==0?gsub(/;/,"",$i):0)}END{print c}'
6