返回顶部
首页 > 资讯 > 操作系统 >如何使用linuxShell脚本把一个数组传递到awk内部进行处理
  • 185
分享到

如何使用linuxShell脚本把一个数组传递到awk内部进行处理

2023-06-09 17:06:54 185人浏览 泡泡鱼
摘要

如何使用linuxshell脚本把一个数组传递到awk内部进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Shell脚本里面怎样把一个数组传递到awk内部

如何使用linuxshell脚本把一个数组传递到awk内部进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Shell脚本里面怎样把一个数组传递到awk内部进行处理?

测试环境:

[root]# head -1 /etc/redhat-releaseRed Hat Enterprise Linux Server release 6.5 (SantiaGo)[root]# awk --version | head -1GNU Awk 3.1.7

众所周知,Shell脚本里面把一个普通变量传递给awk是非常简单的,直接用 -v 参数赋值就行了。

str1="Hello World"awk -v str2="$str1" 'BEGIN{print str2}'

但是,要把一个数组传递给awk就不是那么简单的事情了。请看以下三个试验:

简单的数组可以先赋值后split

arr1=(A B C)awk -v arr2="${arr1[*]}" 'BEGIN{split(arr2,arr3," "); print arr3[2]}'

有些情况下很难找到合适的分隔符来进行split,因为某个数组元素可能会包含你想用来作为分隔符的那个字符,这时split之后无法得到希望的结果。所以这个方法不够严谨,尤其是当我们无法预测数组元素可能包含哪些字符的时候。

arr1=(A "B C" D)awk -v arr2="${arr1[*]}" 'BEGIN{split(arr2,arr3," "); print arr3[2]}'

可以借助export命令和awk的ENVIRON默认数组来实现这个功能

arr1=(A "B C" D)for((i=0;i<${#arr1[*]};i++)); do   export arr1_m$i="${arr1[$i]}"doneawk 'BEGIN{for(i in ENVIRON)if(i~/arr1_m/)print i "=" ENVIRON[i]}'

我这里只是为了演示功能,所以没有把export变量名的定义和awk内部的字符串匹配写的特别考究,大家可以根据实际情况进行调整(比如添加更多的限制条件等)。

Shell脚本里面把一个数组传递到awk内部进行处理,技术上可行,但不建议在生产环境上使用。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网操作系统频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何使用linuxShell脚本把一个数组传递到awk内部进行处理

本文链接: https://lsjlt.com/news/256896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用linuxShell脚本把一个数组传递到awk内部进行处理
    如何使用linuxShell脚本把一个数组传递到awk内部进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Shell脚本里面怎样把一个数组传递到awk内部...
    99+
    2023-06-09
  • linux Shell脚本里面把一个数组传递到awk内部进行处理
    前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法。前两天在QQ群里讨论awk的时候,无意间又聊起这个话题。机缘巧合之下找到一个思路,特此分享。 ...
    99+
    2022-06-04
    数组 脚本 linux
  • 如何使用PHP脚本在Linux环境下进行数据处理
    随着互联网和大数据的快速发展,对于数据处理的需求也越来越多。而在Linux环境下,PHP脚本是一个非常强大和常用的工具,它不仅可以处理网站开发,还可以用来进行大规模的数据处理。本文将介绍如何使用PHP脚本在Linux环境下进行数据处理,并提...
    99+
    2023-10-21
    数据处理 Linux环境 PHP脚本
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作