各位大大好
如題,小弟是shell script萌新,想在一塊板子上放script檔執行,
但是因為一些原因沒辦法使用陣列,現在想要將一個字串內的幾個字元調換順序。
舉例來說 str="a b c d e f" 把第一個字與第三個字對調 str1="c b a d e f"
一開始想利用str1=${$str:}.....的這種方法,但是中間的字元位置判斷感覺有點複雜。
後來想要用awk去做(str1=echo str | awk '{print ...}'
)這種方式,不過遇到一個問題
echo str | awk '{print $1}
這時echo $str1會是a,那有沒有echo str | awk '{print $(($n))}
之類的寫法呢?或是有其他更好的做法也請各位大大不吝題點,謝謝。
建議的方式如下:
str='a b c d e f'
ary=( $str )
new_str="${ary[2]} ${ary[1]} ${ary[0]} ${ary[3]} ${ary[4]}"
echo "str is $str"
echo "new_str is $new_str"
結果:
str is a b c d e f
new_str is c b a d e