[转帖]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 变量的方法

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

方法1,通过eval

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



方法2 通过临时文件

  1. #!/bin/sh  
  2. count=0  
  3. str="123#abc#@&?"  
  4. `awk 'BEGIN { split("'"$str"'",a,"#")}  
  5.      END   { for (i in a) {print a[i];$count++; }}'  /dev/null > 2`  
  6.      
  7. while read buf  
  8. do  
  9.  tArray[$c]=$buf  
  10.  c=$(expr $c + 1)  
  11. done < 2  
  12. echo "array len:" $c  
  13. for((i=0;i<$c;i++));  
  14. do  
  15.   echo ${tArray[$i]}  
  16. 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来分析数据的话,这对广大后端程序员来说,就要简单很多了

[转帖]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程序设计语言,三位

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

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