找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22277|回复: 3

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

[复制链接]
发表于 2010-4-8 17:52:24 | 显示全部楼层 |阅读模式
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 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2010-4-8 17:59:40 | 显示全部楼层
教程是在linux的说明,在xp等系统下,要把单引号换成双引号,原来的双引号前面加\。其他文本处理命令如sed等也是这样。

评分

参与人数 1PB +10 收起 理由
zhouyongjun + 10 谢谢

查看全部评分

 楼主| 发表于 2010-4-8 18:06:14 | 显示全部楼层

回复 2楼 的帖子

谢谢,我搜到了,正如你所说。
发表于 2011-9-21 14:45:06 | 显示全部楼层
长见识了,的确是这样,方便我这样的新手学习哦,呵呵楼主的问题问的也很好哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:11 , Processed in 0.018809 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表