[转帖]linux awk数据列, 存入shell数组

linux,awk,数据,存入,shell,数组 · 浏览次数 : 0

小编点评

**方法 1:通过 eval 执行 awk 命令** ```bash result='week(now(),-1) 49' var=$(echo $result | awk '{print substr($result,16,3)}') echo $var SYSFILE_NAME=$(echo \"$CONTROL_FILE\" | awk -F\".\" '{print $1}' | awk -F\"/\" '{print $NF}'') ``` **方法 2:通过临时文件实现 awk 命令** ```bash # 将字符串分割为数组 str="123#abc#@&?." awk -c 'BEGIN {split(\"'\"$str\"'\",a,\"#\")}' END {for (i in a) print a[i]; $count++}' < /dev/null echo "array len:$c" for ((i = 0; i < $c; i++)) do echo "${tArray[$i]}" ``` **方法 3:直接存结果到数组** ```bash redis_list=$(redis_comm -p 9001 cluster nodes | grep master | &awk '{print $2}' | awk -F['@'] '{print $1}') ```

正文

awk 赋值给 shell 变量的方法

result='week(now(),-1) 49';var=`echo $result|awk '{print substr($result,16,3)}'`;echo $var;SYSFILE_NAME=`echo "$CONTROL_FILE" | awk -F"." '{print $1}' | awk -F"/" '{print $NF}'`;
复制

方法1,通过eval

#!/bin/bash   ipstr="192.168.1.152,192.168.1.153";  #declare -a arr;   eval $(echo $ipstr | awk '{split($0, filearray, ",");for(i in filearray) print "arr["i"]="filearray[i]}')   #eval 把print的内容,和javascript的eval一样的功能  #echo ${arr[1]}   for i in ${arr[*]}  do  #scp_c="scp $i:/opt/flow_video/2011-05-26.txt"  #echo $scp_c  scp $i:/opt/flow_video/2011-05-26.txt /opt/flow_video/2011-05-26_$i.txt  done  
复制



方法2 通过临时文件

#!/bin/sh   count=0  str="123#abc#@&?"  `awk 'BEGIN { split("'"$str"'",a,"#")}       END   { for (i in a) {print a[i];$count++; }}'  /dev/null > 2`        while read buf  do   tArray[$c]=$buf   c=$(expr $c + 1)  done < 2   echo "array len:" $c  for((i=0;i<$c;i++));  do    echo ${tArray[$i]}  done  
复制

 

方法三:我用的就是这种:直接将结果存入数组

redis_list=$($redis_comm -p 9001 cluster nodes | grep master |  awk '{print $2}' |  awk -F['@'] '{print $1}')

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux实用命令awk命令23434 人正在系统学习中

与[转帖]linux awk数据列, 存入shell数组相似的内容:

[转帖]linux awk数据列, 存入shell数组

awk 赋值给 shell 变量的方法 result='week(now(),-1) 49';var=`echo $result|awk '{print substr($result,16,3)}'`;echo $var;SYSFILE_NAME=`echo "$CONTROL_FILE" | aw

[转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

https://www.cnblogs.com/alongdidi/p/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取

[转帖]Linux-文本处理三剑客awk详解+企业真实案例(变量、正则、条件判断、循环、数组、分析日志)

https://developer.aliyun.com/article/885607?spm=a2c6h.24874632.expert-profile.313.7c46cfe9h5DxWK 简介: 文本处理 awk 1.awk简介 awk是一种编程语言,用于在Linux/unix下对文本和数据进

[转帖] q命令-用SQL分析文本文件

https://www.cnblogs.com/codelogs/p/16060830.html 简介# 在Linux上分析文本文件时,一般会使用到grep、sed、awk、sort、uniq等命令,但这些命令都有一定的学习成本,而如果是用SQL来分析数据的话,这对广大后端程序员来说,就要简单很多了

[转帖]Shell三剑客之awk

目录 awk简述awk的工作过程awk的工作原理awk的基本格式及其内置变量getline文本内容匹配过滤打印对字段进行处理打印条件判断打印awk的三元表达式与精准筛选用法awk的精准筛选:awk的分隔符用法指定输出的分隔符awk结合数组运用面试题 awk简述 在 Linux/UNIX 系统中,aw

[转帖]Linux AWK工作原理

https://www.cnblogs.com/yeyuzhuanjia/p/13967513.html 本篇文章我们主要为大家介绍 AWK 是如何工作的。 AWK 工作流程可分为三个部分:1.读输入文件之前执行的代码段(由BEGIN关键字标识)。2.主循环执行输入文件的代码段。3. 读输入文件之后

[转帖]Linux下AWK、SED、GREP、FIND命令详解

https://www.jianshu.com/p/d54e0359db01 AWK AWK是一个优良的文本处理工具,Linux和Unix环境中现有的功能最强大的数据处理引擎之一。 语法 awk [选项参数] 'script' var=value file(s) 或 awk [选项参数] -f sc

[转帖]Linux中awk命令正确的求最大值、最小值、平均值、总和

`https://blog.csdn.net/fireblue1990/article/details/51622416` test.txt文件内容: 9 11 35 21 42 118 求最大值: awk 'BEGIN {max = 0} {if ($1+0 > max+0) max=$1} EN

[转帖]【Linux学习】awk内置函数详细介绍(实例)

https://www.cnblogs.com/gtea/p/12668736.html 这节详细介绍awk内置函数,主要分以下3种类似:算数函数、字符串函数、其它一般函数、时间函数 一、算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x )

[转帖]Linux系统awk命令详解

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 实际上 AWK 的确拥有自己的语言: AWK程序设计语言,三位