[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]gawk单引号、双引号的使用:双引号为何需要转义?

gawk教学内容见此贴:http://bbs.bathome.net/thread-3997-1-1.html
下面问题来源此贴,测试文本内容如下:
shipped.txt

Jan 13 25 15 115
Feb 15 32 24 226
Mar 15 24 34 228
Apr 31 52 63 420
May 16 34 29 208 J
un 31 42 75 492
Jul 24 34 67 436
Aug 15 34 47 316
Sep 13 55 37 277
Oct 29 54 68 525
Nov 20 87 82 577
Dec 17 35 61 401
Jan 21 36 64 620
Feb 26 58 80 652
Mar 24 75 70 495
Apr 21 70 74 514

问题为:求第一栏为Feb时,第二栏与第三栏的和。
示例代码如下:
  1. gawk '$1 == "Feb" {sum=$2+$3} END {print sum}' shipped
复制代码
上面代码而我并不能成功运行,而是返回错误信息。
把代码改为下面形式,则可:
  1. gawk "$1 == \"Feb\" {sum=$2+$3} END {print sum}" shipped.txt
复制代码
问题出来了:
1.教程及其他地方找的资料都说gawk后面句子需在一对单引号之内,而我测试偏偏单引号不行而要改为双引号,不知何因?
2.双引号明明不是gawk里交代的特殊字符,却需要转义才能得到正确结果,更加迷惑!

[ 本帖最后由 zhouyongjun 于 2010-4-8 18:09 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

教程是在linux的说明,在xp等系统下,要把单引号换成双引号,原来的双引号前面加\。其他文本处理命令如sed等也是这样。
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 2楼 的帖子

谢谢,我搜到了,正如你所说。

TOP

长见识了,的确是这样,方便我这样的新手学习哦,呵呵楼主的问题问的也很好哦

TOP

返回列表