Awk 替换引号或双引号外所有不需要的分号
我不太擅长bash。 我已经用python从Excel生成了PSQL文件 在bash脚本中运行psql 我想替换引号或双引号之外的所有分号Awk 替换引号或双引号外所有不需要的分号,awk,sed,Awk,Sed,我不太擅长bash。 我已经用python从Excel生成了PSQL文件 在bash脚本中运行psql 我想替换引号或双引号之外的所有分号 SELECT *; FROM table ;WHERE description =';'; SELECT *; FROM table ;WHERE; description like "%;%"; SELECT *; FROM table ;;WHERE description like ";?"; 结果应该是除
SELECT *; FROM table ;WHERE description =';';
SELECT *; FROM table ;WHERE; description like "%;%";
SELECT *; FROM table ;;WHERE description like ";?";
结果应该是除分号以外的所有类型的引号/双引号,如下所示
SELECT * FROM table WHERE description =';'
SELECT * FROM table WHERE description like "%;%"
SELECT * FROM table WHERE description like ";?"
这是我试过的
sed "s/.*;.*\(\'\;'\)//g" a.sql
好像什么都没做
SELECT *; FROM table ;WHERE description =';';
SELECT *; FROM table ;WHERE; description like "%;%";
SELECT *; FROM table ;;WHERE description like ";?";
下面是一个使用
FPAT
的gnu awk解决方案:
awk-vofs=-vfpat=“\”[^\”]*\“\\”[^']*'.[^'\”]+“'{
对于(i=1;iyes,谢谢,这是有效的,请尝试理解这一点。您能解释更多关于047的信息吗?因为从ASCII表中,它只包含单引号,以双引号开头的情况下哪个句柄?我在括号表达式中有[“\047]
,意思是匹配”
或“
好的,我明白了。谢谢你。好的,我明白了。awk-vofs=-vfpat=“\”[^\”]*\“\”[^']*'.[^'\“]+”{for(I=1;I)