shell脚本(一)—— 批量修改文件中的内容

简单的shell脚本,用于批量修改当前文件夹下被匹配的子文件夹中所有文件的内容:

#! /bin/bash
echo "change all the file in this dir !"

for dir in $(ls -d rfdig*); do 
    [ -d $dir ] && echo $dir 
    for file in $(cd $dir && ls *); do 
        [ -e ${dir}/${file} ] && echo $file
        sed -i 's/gpio_ret_pd_p/gpio_mcu_p/g' ${dir}/${file}
        sed -i 's/gpio_out_set/gpio_mcu_out_set/g' ${dir}/${file}
        sed -i 's/gpio_out_clear/gpio_mcu_out_clear/g' ${dir}/${file}
        sed -i 's/pmu_dig_psw_ack/pmu_power_state/g' ${dir}/${file}
        sed -i 's/RFDIG_REGS\[crg_crg\]/RFDIG_REGS\[crg_ret_pd_crg\]/g' ${dir}/${file}
        sed -i 's/RFDIG_REGS\[dsm_denominator\]/RFDIG_REGS\[dsm_ret_pd_denominator\]/g' ${dir}/${file}
        sed -i 's/RFDIG_REGS\[dsm_divn_frac\]/RFDIG_REGS\[dsm_ret_pd_divn_frac\]/g' ${dir}/${file}
        sed -i 's/u_uwb_sub/u_pd_uwb_wrap/g' ${dir}/${file}
        sed -i 's/u_rfdig_top/u_rfdig_uwb_top/g' ${dir}/${file}
        sed -i 's/crg_crg_vcosel_clk_gate_en_bit/crg_ret_pd_crg_vcosel_clk_gate_en_bit/g' ${dir}/${file}
        sed -i 's/crg_txafe_crg/crg_txafe_ret_pd_crg/g' ${dir}/${file}
    done
done