当前位置: 首页 > news >正文

shell脚本,根据字符串获取行号的

awk中不能解析shell变量,建议做法是通过-v传递进去:

1
typeline=` cat  $typepath |  awk  - v  str= "$typetmp"  '/str/{print NR}' `

第一句之所以在awk中可以直接使用shell变量$line,是因为用的双引号。

 

从执行效率上来说,你的写法其实太过累赘,下面是改良版:

1
2
typetmp=` awk  -F ":"  - v  n=$line  'NR==n{print $1}'  $paratmppath`
typeline=` sed  -n  '/' "$typetmp" '/='  $typepath`

这里用sed来获取行号。

第一句,cut能做的awk也能做,直接在一个awk里完成就行。

awk和sed本身就是直接对文件的处理,用不着先cat再通过管道传递过来处理。

"$typetmp"前面的单引号用于跟一开始的单引号凑成一对,关闭sed作用域回到shell环境中,使得shell可以解析此变量,然后重新用单引号再次进入sed作用域。等于将sed作用域从中间分割开了。

相关文章:

  • Linux script(录制) 命令
  • Golang升级到1.7后,之前正确的函数出现错误,分析原因及解决办法
  • 更新image的方法
  • Docker学习笔记 - Docker容器与外部网络的连接
  • proxy是什么
  • RIP路由配置实例V2
  • 前端开源项目周报0207
  • Codeforces Round #396 (Div. 2) D. Mahmoud and a Dictionary 并查集
  • 为你的网络传输加把锁(OpenSSL)
  • Java之戳中痛点 - (2)取余用偶判断,不要用奇判断
  • 如何才能弥补实际工作经验不足,而获得一份好工作?
  • CentOS 7 网卡命名修改为eth0格式
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • python学习笔记 - ThreadLocal
  • ettercap dns_spoof
  • [译]CSS 居中(Center)方法大合集
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 03Go 类型总结
  • 2018一半小结一波
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CSS3 变换
  • ES6系统学习----从Apollo Client看解构赋值
  • iOS 颜色设置看我就够了
  • JS 面试题总结
  • leetcode46 Permutation 排列组合
  • PHP 的 SAPI 是个什么东西
  • 安卓应用性能调试和优化经验分享
  • 测试开发系类之接口自动化测试
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 高度不固定时垂直居中
  • 给初学者:JavaScript 中数组操作注意点
  • 猴子数据域名防封接口降低小说被封的风险
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (libusb) usb口自动刷新
  • (poj1.3.2)1791(构造法模拟)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)可以带来幸福的一本书
  • .NET 服务 ServiceController
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET中 MVC 工厂模式浅析
  • @RequestMapping用法详解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [android学习笔记]学习jni编程
  • [CodeForces-759D]Bacterial Melee
  • [error] 17755#0: *58522 readv() failed (104: Connection reset by peer) while reading upstream