歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux awk 數組和循環

awk 作為強大的文本處理工具,少不了數組處理。

awk 中數組叫做關聯數組(associative arrays),下標可以是數字也可以是字符串。awk 中的數組不必提前聲明,也不必聲明大小,初始化數組元素用 0 或空串,這根據上下文而定。

一 語法

語法: awk '{pattern + action}'    或  awk 'pattern {action}'

其中 pattern 表示 AWK 在數據中查找的內容, action 是在找到匹配內容時所執行的一系列命令。花括號 {} 不需要在程序中始終出現,但它們用於根據特定的模式對一系列指令進行分組(作用域)。

二 數組定義

1 一維數組

a) 數字下標

array[1]="it"
array[2]="homer"
array[3]="sunboy"
array[4]=2050

b) 字符下標

array["first"]="yang"
array["second"]="gang"
array["third"]="sunboy"

示例 1:

#!/bin/bash

awk 'BEGIN{
array[1]="it"
array[2]="homer"
array[3]="sunboy"
array[4]=2050


array["first"]="yang"
array["second"]="gang"
array["third"]="sunboy"


print array[1], array[4]
print array[3], array["third"]}'

結果:

it    2050
sunboy    sunboy

示例 2:

#!/bin/bash

awk 'BEGIN{
  for(i=1; i<=5; i++){
      array[i] = i*2 - 1;
  }

  for(i in array){
      print i" = " array[i];
  }
}'

結果:

4 = 7
5 = 9
1 = 1
2 = 3
3 = 5
注: for in 輸出數組元素順序是不定的,下面介紹對數組如何排序

Copyright © Linux教程網 All Rights Reserved