最近做预料处理,使用bash脚本,需要在脚本的sed和awk使用shell变量以控制循环,出现一些问题后找到解决办法如下:
1.sed使用shell变量
 这个比较好办,sed命令中可以用单引号和双引号,一般我们习惯用单引号,如下:
 sed -i 's/pattern1/pattern2/g' inputfile
 如果要使用shell变量,就需要使用双引号
pattern1=XXX
pattern2=XXX
sed -i "s/$pattern1/$pattern2/g" inputfile

2. awk使用shell变量
有很多种方法,最简单的一种记录如下:
line=XXX
awk '$1=="'$line'"{print $0}' inputfile
注意的是,awk命令本身需要将模式和动作部分用单引号引用,所以里面引用shell变量是双引号+单引号,双引号是保证正确处理变量值的空格,放大一下:
"'$line'"
另外:
awk '$1="win"{$"'$curcls'"=$"'$curcls'"+1;print $0}' nwf
则是另一种间接引用模式,因为通常shell的间接引用是使用
eval echo \$$var
更高级的
a=10
b=a
c=${!b}
则c=10

转载于:https://blog.51cto.com/xiongyaofu/384846

sed和awk中使用shell变量相关推荐

  1. awk中引用shell变量执行替换的脚本

    遇到问题: 现在有两个脚本,我想 将file1中的内容按file2来匹配 [root@154 home]# cat file1 3-1-1 POTV=1,POTA=0,POTP=2 1-4-76 PO ...

  2. Awk中调用shell命令

    Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...

  3. linux中对shell变量内容的修改和替换

    鸟哥私房菜中,对这一内容的描述,简直让人看不懂,好不容易找来文章可以帮助理解下. linux中对shell变量内容的修改和替换 1.变量内容修改 file=/dir1/dir2/dir3/my.fil ...

  4. linux脚本awk,如何在awk脚本中使用shell变量?

    获取shell变量 awk 可以通过几种方式完成.有些人比其他人好.这应该涵盖大部分内容.如果您有评论,请在下面留言. 使用-v (最好的方式,最便携) 使用-v选项:( PS后使用空格-v或不太便携 ...

  5. 如何在awk中引用外部变量

    http://www.unix.com/shell-programming-scripting/167627-use-shell-variable-awk-command.html 期望达到的功能-- ...

  6. linux shell变量的,linux shell变量解析

    摘要 腾兴网为您分享:linux shell变量解析,智影,智联招聘,智慧消防,音恋等软件知识,以及考拉fm电台,快快游戏,京东企业购app,pdf加密工具,高德导航3d版,电脑驱动,兰溪新闻,我爱网 ...

  7. Shell程序设计 | 文本处理工具 :正则表达式、grep、sed、awk

    文章目录 正则表达式 grep sed awk 其它常用工具 cut sort uniq tr 常见面试题 第十行 有效电话号码 统计词频 转置文件 要想使用这些流式处理工具,那么就必须得了解正则表达 ...

  8. Shell 编程之正则表达式与文本处理器--(grep,egrep 与文本处理器-sed、awk、sort、uniq、tr)

    文章目录 一.正则表达式 1.1 正则表达式概述 1.1.1 正则表达式的定义 1.1.2 正则表达式用途 1.2 基础正则表达式 1.3 基础正则表达式:grep命令 1.3.1 查找特定字符 1. ...

  9. shell编程之正则表达式与总结(grep,egrep)与文件处理器和总结(sed,awk,sort,uniq)

    文章目录 前言 一:基础正则表达式 1.1:正则表达式的定义 1.2:正则表达式用途 1.3:基础正则表达式 1.4:基础正则表达式:grep命令 1.4.1:查找特定字符 1.4.2:利用中括号&q ...

最新文章

  1. 【linux】关于分析系统问题的前几分钟
  2. mybatisgenerator使用_如何优雅地使用MyBatisplus
  3. spring-boot-2.0.3之quartz集成,不是你想的那样哦!
  4. P2657-[SCOI2009]windy数【数位dp,dfs】
  5. go 正则表达式分组匹配_Go语言正则表达式用法实例小结【查找、匹配、替换等】...
  6. Java 实现固定长度队列,自动删除最早添加的数据
  7. 实验8:Problem A: 立体空间中的点(I)
  8. HDU 4122:Alice's mooncake shop RMQ(2011 Asia Fuzhou Regional Contest )
  9. Java语言编写一个简单彩票机的程序
  10. Java菜鸟教程 基本数据类型(一)
  11. 安装教程 | 在谷歌安装印象笔记插件(实用,在谷歌浏览器添加印象笔记插件,整理遇到bug,收藏解决bug的文章)
  12. 【二级等保】二级等保怎么做?价格怎么样?贵吗?
  13. 2021-2027全球与中国锁模激光器市场现状及未来发展趋势
  14. 转载:【Gradle教程】Gradle 基础入门
  15. Tensorflow (2): tf.slim库解读
  16. jquery选择器可以利用后代和直系后代选择器连续选择元素
  17. Linux查看DNS
  18. CCS7.2的下载、安装及打开CCS3.3工程文件
  19. Java 树形结构目录树的几种生成方式
  20. 深入浅出Pytorch函数——torch.zeros_like

热门文章

  1. Perfect service(树形dp)
  2. C语言——第0次作业(二)
  3. 【JZOJ5088】【GDOI2017第四轮模拟day2】最小边权和 排序+动态规划
  4. 转换时间对象和字符串对象添加时间
  5. linux查看CPU信息
  6. [置顶] 我整理的一些常用网址
  7. EeePC1000hg安装archlinux20121201和openbox
  8. 关于AVR单片机熔丝位的设置和拯救方法大全 AVR单片机熔丝位的设置和详细的拯救方法...
  9. 电脑下边的任务栏不见了_XP系统任务栏被空白工具栏占领快速删除办法
  10. html 选择列表框,列表框和组合框的区别是什么?