一道中級運維的shell面試題

偶遇的shell題:python

把"------"短線上的數據處理成線下的數據shell

0,1,2,10,22,00,01,2,3,33bash

-----------------------------------ide

00,01,02,10,22,00,01,02,03,33
函數


我認可,我落伍了,智力測驗 + 能力檢驗麼?it


方法一: awk + awk 內置字符處理函數 + awk 控制語句io

方法二: bashclass

貌似bash對文本批量處理的功能比較弱,不過度割之後,再經過bash的變量擴展(Parameter Expansion)仍是很方便的。awk

其它語言,python,perl應該會更好處理。變量

方法一:

echo  -en '0,1,2,10,22,00,01,2,3,33' |awk 'BEGIN{RS=",";ORS=","}{if (length($0)<2) {print "0"$0}  else { print $0} }' |sed -r 's/^(.*),$/\1/g'

方法二:

#!/bin/bash
str="0,1,2,10,22,00,01,2,3,33"
typeset -i n
typeset -a tmp
for s in ${str//,/ }
do
        [ ${#s} -lt 2 ] && tmp[n]=0$s || tmp[n]=$s
        ((n++))
done
STR=${tmp[*]}
echo ${STR// /,}
相關文章
相關標籤/搜索