CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

shell编程中awk的使用?

楼主jyl28()2006-01-24 15:04:02 在 Linux/Unix社区 / 程序开发区 提问

awk中如何使用变量,如下例所示:  
   
  echo   "user:"  
  read   USER  
   
  TMP_DATA=$(sed   -n   '1,$p'   test.txt)  
  TMP_DATA=$(echo   "$TMP_DATA"   |   awk   '{if($1=="user")   gsub($2,$USER);   print   $0}')  
   
  echo   "$TMP_DATA"   >   test.txt  
   
  文件test.txt中的文本是以空格分开的  
  ......  
  date   2005/02/12  
  user   guest  
  ......  
   
  想将guest置换成用户输入的客户名  
  应该怎么做?谢谢 问题点数:20、回复次数:10Top

1 楼fierygnu(va_list)回复于 2006-01-24 16:10:42 得分 0

传递变量给awk非常困难。你的应用用sed就可以了。试试  
  TMP_DATA=$(echo   "$TMP_DATA"   |   sed   "s/^user   \.\*$/user   $USER/"Top

2 楼jyl28()回复于 2006-01-24 17:01:07 得分 0

能解释下“\.\*$”的作用吗?Top

3 楼jyl28()回复于 2006-01-24 17:09:45 得分 0

用你给的脚本试了,没替换掉,代码有问题哟!Top

4 楼fierygnu(va_list)回复于 2006-01-24 17:11:00 得分 0

\是转义符。写错了,应该是[^   ]\*$意思是空格后所有字符。  
  因为用了双引号,所以要用转义符。Top

5 楼fierygnu(va_list)回复于 2006-01-24 17:12:20 得分 0

唔,没试,所以有问题正常:)  
  shell内部,把转义符去掉试试。Top

6 楼jyl28()回复于 2006-01-24 17:20:36 得分 0

不行Top

7 楼fierygnu(va_list)回复于 2006-01-24 17:23:31 得分 0

报错吗?后边少了个),加上了吗?Top

8 楼jyl28()回复于 2006-01-24 17:27:34 得分 0

没报错,是没替换掉Top

9 楼jyl28()回复于 2006-01-24 17:27:57 得分 0

括号已经加上了Top

10 楼fierygnu(va_list)回复于 2006-01-24 23:03:37 得分 20

没替换?去掉转义符了吗?这样:  
  TMP_DATA=$(echo   "$TMP_DATA"   |   sed   "s/^user   [^   ].*$/user   $USER/")Top

相关问题

  • shell编程:awk疑难求解
  • shell编程
  • shell 编程
  • shell 编程?
  • Shell 编程问题
  • 关于shell编程
  • shell编程问题
  • 可以使用shell编程完成发送邮件的功能吗?
  • powerbuilder 使用 socket编程
  • Dll编程及使用!!!!

关键词

  • awk
  • 转义符
  • 替换
  • sed
  • tmp
  • echo
  • txt
  • user
  • data
  • test

得分解答快速导航

  • 帖主:jyl28
  • fierygnu

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo