1. 程式人生 > >linux shell批處理去除指定字元前所有的0

linux shell批處理去除指定字元前所有的0

批處理去除指定字元前所有的0
題目
有文字 1.txt

0000acb0h 
0b0c00a000s 
0000h00ga00 
a0000000

要求
通過批處理將文字所有字串字元a前的0去除輸出如下

acb0h 
bca000s 
hga00 
a0000000

編寫程式碼
#! /bin/bash

file=./1.txt
before=a
replace=0

while read line
do
        len=${#line}

        i=0
        str=            #保留指定字元前面字元

        while [ ${i} -lt ${len} ]
        do
                c=${line:${i}:1}

                #判斷是否在指定字元之前
                if [ "${c}" == "${before}" ]
                then 
                        break
                fi

                #是否為需要刪除的字元
                if [ "${c}" != "${replace}" ]
                then
                        str=${str}${c}
                fi

                let i++
        done

        # 保留指定字元後面的內容
        suffix=${line:${i}}

        echo ${str}${suffix}


done < ${file}

執行結果

--------------------- 
作者:dengjili 
來源:CSDN 
原文:https://blog.csdn.net/dengjili/article/details/78073585 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

批處理去除指定字元前所有的0
題目
有文字 1.txt

0000acb0h 
0b0c00a000s 
0000h00ga00 
a0000000

要求
通過批處理將文字所有字串字元a前的0去除輸出如下

acb0h 
bca000s 
hga00 
a0000000

編寫程式碼
#! /bin/bash

file=./1.txt
before=a
replace=0

while read line
do
        len=${#line}

        i=0
        str=            #保留指定字元前面字元

        while [ ${i} -lt ${len} ]
        do
                c=${line:${i}:1}

                #判斷是否在指定字元之前
                if [ "${c}" == "${before}" ]
                then 
                        break
                fi

                #是否為需要刪除的字元
                if [ "${c}" != "${replace}" ]
                then
                        str=${str}${c}
                fi

                let i++
        done

        # 保留指定字元後面的內容
        suffix=${line:${i}}

        echo ${str}${suffix}


done < ${file}

執行結果

--------------------- 
作者:dengjili 
來源:CSDN 
原文:https://blog.csdn.net/dengjili/article/details/78073585 
版權宣告:本文為博主原創文章,轉載請附上博文連結!