shell腳本--文本處理三劍客之awk中數組的用法

正常腳本數組使用

array=("Allen" "MIKE" "Messi" "Jerry" "Hanmeimei" "Wang")

echo ${array[2]}             打印單個元素
echo ${#array[@]}                 打印元素個數
echo ${#array[3]}                 打印數組長度
array[3]="HAHA"                  修改元素
unset array[3];unset array        刪除元素
echo ${array[@]:1:3}          分片訪問
$ echo ${array[@]/Messi/HAHA}     元素替換單個
$ echo ${array[@]//Messi/HAHA}     元素替換全部

打印元素
for a in ${array[@]} 
do
     echo $a
done

示例

獲取某個數組

$ echo ${array[2]}
Messi

獲取數組的個數

$ echo ${#array[@]}
6

打印元素長度

$ echo ${#array[3]}
5

 $ array[3]="HAHA" 修改元素

$ array[3]="HAHA"
$ echo ${array[@]}
Allen MIKE Messi HAHA Hanmeimei Wang

刪除元素 unset array[3]; unset array

$ unset array[3]
$ echo ${array[@]}
Allen MIKE Messi Hanmeimei Wang

 echo ${array[@]:1:3} 分片訪問

$ echo ${array[@]:1:3}
MIKE Messi Hanmeimei

 echo ${array[@]/Messi/HAHA} 替換第一個  echo ${array[@]//Messi/HAHA} 替換全部

$ echo ${array[@]/Messi/HAHA}
Allen MIKE HAHA Hanmeimei Wang

 打印數組

$ for a in ${array[@]};do echo $a ;done
Allen
....

將命令寫入到script.awk文件中

BEGIN{
	FS=":"
}
 
{ 
	if($3<50) 
	{ 
		printf "%-10s%s%d\n",$1,"小於50的UUID : ",$3
	} 
	else if($3>100) 
	{ 
		printf "%-10s%s%d\n",$1,"大於100的UUID: ",$3 
	}
}

執行 awk -f script.awk passwd 

awk -f script.awk passwd 
root      小於50的UUID : 0
nobody    大於100的UUID: 65534

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章