嗨,我想在单个cote中计算分号的数字
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
我试过grep推荐
total_semicolon=`DML| grep -o ';' | wc -l`
* DML是完整查询
答案 0 :(得分:0)
试试这个单行:
awk -F"'" '{for(i=1;i<=NF;i++)c+=(i%2==0?gsub(/;/,"",$i):0)}END{print c}'
它适用于相同报价对案例中的单个/多个;
,有些测试:
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