Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 计数单个cote中的分号数_Shell - Fatal编程技术网

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