使用^取消"的转义作用即可
C:\>echo ^"batch | find "at"
"batch
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
C:\>echo ^"batch | find "at"
"batch
Originally posted by qzwqzw at 2007-6-22 12:33:
使用^取消"的转义作用即可
"CN中的"為什麼不是與(/\"CN=/,\"\")中逗號後面的"匹配,而是與1.txt後面的那一個匹配呢?
Originally posted by qzwqzw at 2007-6-25 16:41:
因此,据我的理解
那个gawk句子也可以改作以下几种形式
而不会让cmd产生误解
gawk "{gsub(/\"CN=/,\"\");print}"" 1.txt | gawk -F"(" "{print $1}"
gawk {gsub(/\"CN=/,\"\");print} 1.txt" | gawk -F"(" "{print $1}"
上面两句cmd仍然将gawk 到 | 之间的部分认作一个串
下面两句cmd会则将它认作两个串,第二个串是 1.txt
gawk "{gsub(/\"CN=/,\"\");print} 1.txt | gawk -F"(" "{print $1}"
gawk {gsub(/\"CN=/,\"\");print}" 1.txt | gawk -F"(" "{print $1}"
至于会让gawk是否会产生歧义
因为没有测试环境不太肯定
前面两句应该是没有什么问题的
后面两句则可以存疑
>>gawk "{gsub(/\"CN=/,\"\");print}"" 1.txt | gawk -F"(" "{print $1}"
gawk: {gsub(/"CN=/,"");print}"
gawk: ^ unterminated string
>>gawk ""{gsub(/\"CN=/,\"\");print}"" 1.txt" | gawk -F"(" "{print $1}"
AA A
BB B
>>gawk {gsub(/\"CN=/,\"\");print} 1.txt" | gawk -F"(" "{print $1}"
AA A
BB B
>>gawk "{gsub(/\"CN=/,\"\");print} 1.txt | gawk -F"(" "{print $1}"
^C^C
>>gawk ""{gsub(/\"CN=/,\"\");print} 1.txt" | gawk -F"(" "{print $1}"
AA A
BB B
>>gawk {gsub(/\"CN=/,\"\");print}" 1.txt | gawk -F"(" "{print $1}"
^C^C
>>gawk "{gsub(/\"CN=/,\"\");print}" 1.txt" | gawk -F"(" "{print $1}"
AA A
BB B
Originally posted by qzwqzw at 2007-6-26 10:37:
——“运行时间长且没有结果”
这是在等待你的输入
输入一些字符可以看到一些效果
按Ctrl+Z和回车结束输入
很显然,gawk没有从cmd传给它的命令行中找到要操作的文件
所以才从标准输入端(也就是控制台中的键盘)读取文本