真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

頭文件大小寫問題的腳本解決方案-創(chuàng)新互聯(lián)

linux的文件名是大小寫敏感的,所以,我們要將代碼中include的頭文件大小寫做個(gè)轉(zhuǎn)換。頭文件大小寫問題的腳本解決方案

手動(dòng)修改——當(dāng)我沒說……

成都創(chuàng)新互聯(lián)公司網(wǎng)站設(shè)計(jì),為客戶量身定制各類網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、響應(yīng)式網(wǎng)站設(shè)計(jì)、行業(yè)門戶型等各類網(wǎng)站,實(shí)戰(zhàn)經(jīng)驗(yàn)豐富,成功案例眾多。以客戶利益為出發(fā)點(diǎn),成都創(chuàng)新互聯(lián)公司網(wǎng)站制作為客戶規(guī)劃、按需定制設(shè)計(jì)符合企業(yè)需求、帶有營(yíng)銷價(jià)值的網(wǎng)絡(luò)建站方案認(rèn)真對(duì)待每一個(gè)客戶,我們不用口頭的語(yǔ)言來(lái)吹擂我們的優(yōu)秀,成百上千家的成功案例見證著我們的成長(zhǎng)。

用腳本去解決,之前我用perl寫過這樣功能的腳本,但是時(shí)間久遠(yuǎn),我已經(jīng)找不到了。

簡(jiǎn)單分析一下,大概是一下幾步

  1. 找到所有的被包含過的頭文件,grep/sort/uniq
  2. 對(duì)每一個(gè)頭文件,如果存在,則不處理
  3. 如果不存在,則忽略大小寫find -iname,這樣會(huì)有三種不同的結(jié)果,找不到,找到一個(gè)和找到多個(gè),將結(jié)果分別記錄在不同的文件,作為輸出結(jié)果
  4. 對(duì)于找不到的,這個(gè)可能是系統(tǒng)文件,也可能是因?yàn)閯e的原因找不到,這需要一個(gè)一個(gè)的確認(rèn)
  5. 對(duì)于找到一個(gè)的,簡(jiǎn)單的perl替換就可以了,或者sed?我喜歡perl
  6. 對(duì)于找到多個(gè)的,直接等待手工確認(rèn)

以上就簡(jiǎn)單處理了大部分的情況,就此打住,腳本么,簡(jiǎn)簡(jiǎn)單單的處理個(gè)七七八八就可以了。能處理的就要處理對(duì),不能處理的就記錄下來(lái)。

根據(jù)以往的經(jīng)驗(yàn),在一個(gè)大而復(fù)雜的系統(tǒng)里面,這樣的結(jié)果可能會(huì)出現(xiàn)找到多個(gè)的很多,這樣就會(huì)很麻煩,但也沒辦法。

一下是shell腳本,經(jīng)測(cè)試,能工作。

#!/bin/bash

workdir=.
modify=0while [ $# -gt 0 ]
do  case $1 in  "--modify")
        modify=1
        ;;
"--work-dir")
shift
        workdir=$1
        ;;
*)
echo "USAGE: $0 [--work-dir ] [--modify] [--help]"
        exit1  esac  shiftdoneecho "work-dir: $workdir, modify: $modify"

h_files=$(tempfile)
none_files=files_none
ok_files=files_one
more_files=files_more

>$none_files
>$ok_files
>$more_files

all_find=$(tempfile)
deal_files=$(tempfile)

grep -Prsh '^s*#s*include' $workdir | grep -Po 'w+.h' | sort | uniq | while read hfile
do  echo -n .
if [ $(find $workdir -name "$hfile" | wc -l) -eq 0 ]
then   find $workdir -iname "$hfile" > $all_find
cat $all_find | grep -Po 'w+.h$' | sort | uniq > $h_files
        file_cnt=$(cat $h_files | wc -l)
if [ $file_cnt -eq 0 ]
then echo $hfile >> $none_files
elif [ $file_cnt -eq 1 ]
then
            newfile=$(cat $h_files)
echo $hfile '->' $newfile >> $ok_files
cat $all_find >> $ok_files
            #for ok, deal it
if [ $modify -eq 1 ]
then  grep -Prsn "^s*#s*include.*$hfile" $workdir > $deal_files
if [ $(cat $deal_files | wc -l) -gt 0 ]
then   cat $deal_files | awk -F: '{print $1}' | xargs perl -i -pe "s/$hfile/$newfile/"   echo modified: >> $ok_files
cat $deal_files >> $ok_files
fi fi   else echo -- $hfile -- >> $more_files
cat $all_find >> $more_files
fi  fidoneecho Done!
echo the result in file: $none_files, $ok_files and $more_files

文章名稱:頭文件大小寫問題的腳本解決方案-創(chuàng)新互聯(lián)
分享路徑:http://weahome.cn/article/ehdig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部