1. 程式人生 > >linux shell將字串分割陣列

linux shell將字串分割陣列

經常用將字串分割為陣列的需求。在shell中常用的方式為以下兩種

#!/bin/bash

function split_1()
{
    x="a,b,c,d"

    OLD_IFS="$IFS"
    IFS=","
    array=($x)
    IFS="$OLD_IFS"

    for each in ${array[*]}
    do
        echo $each
    done
}

function split_2()
{
    x="a,b,c,d"

    echo $x | awk '{split($0,arr,",");for(i in arr) print i,arr[i]}'
}

split_1
split_2

對於方法一,將系統IFS臨時替換為分隔符,然後再換回去,達到分割字串為陣列的目的

對於方法二,採用awk的split函式分割,注意awk中的陣列為關聯陣列,不清楚的同學們請查閱相關資料。