awk 输出值到多个变量
2015-12-20 15:16
375 查看
通常把awk执行的结果直接赋值给某个变量然后对该变量进行操作。当需要同时输出多个值时,却没有好的方法同时赋给多个变量,以下只是变通的方法。
1. 直接用while read 重定向到多变量,但是得到的变量只在循环范围内有效
2. 通过循环和数组进行变相赋值
1. 直接用while read 重定向到多变量,但是得到的变量只在循环范围内有效
#/usr/bin/env bash echo $(seq 1 9) | awk '{ print $5,$6,$7}' | while read a b c do echo -n "Loop times: " echo $a $b $c rep=$(ls -l $0|column -t) echo "$rep" | sed -n 's/\([^ ]*\) \([^ ]*\) \([^ ]*\) \(.*\)/\1'"[${a}]"'\2'"[${b}]"'\3'"[${c}]"'\4/p' done echo $a $b $cps: while 循环执行一次,通过赋值得到的变量$a,$b,$c只在循环内有效
2. 通过循环和数组进行变相赋值
#!/usr/bin/env bash declare -a array idx=0 for elt in $( echo $(seq 1 9) | awk '{ print $2,$3,$4,$5,$6,$7}') do array[$idx]=$elt let "idx+=1" done echo ${array[1]},${array[3]},${array[*]} res=$( echo $(seq 1 9) | awk '{ print $2,$3,$4,$5,$6,$7}') for elt in $res do arr[${id:-0}]=$elt let "id+=1" done echo for a in {0..5} do echo ${arr[$a]} done
相关文章推荐
- 文本处理工具AWK详解
- 一波实用的Bash Shell整理
- awk简介与学习笔记收集第1/3页
- linux shell awk获得外部变量(变量传值)简介
- sed或awk处理文件最后一行的实现方法
- bash脚本输入密码不回显问题的解决方法
- awk中查看包含某两列字符的用法
- awk区间取值的例子
- bash 编程中循环语句用法
- Linux BASH多进程并行处理的方法实现
- BASH 学习笔记小结
- 写出健壮Bash Shell脚本的一些技巧总结
- Bash Shell中忽略大小写的设置方法
- awk实现Left、join查询、去除重复值以及局部变量讲解例子
- Linux bash Shell中的变量类型详解
- awk中让人郁闷的system()函数
- linux BASH shell下设置字体及背景颜色
- bash获取当前路径示例
- Bash Shell 注释多行的几种方法
- linux bash字符串处理大全