内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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

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

手動(dòng)修改——當(dāng)我沒(méi)說(shuō)……

成都創(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)秀,成百上千家的成功案例見(jiàn)證著我們的成長(zhǎng)。

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

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

  1. 找到所有的被包含過(guò)的頭文件,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ì)很麻煩,但也沒(méi)辦法。

一下是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 <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

當(dāng)前標(biāo)題:頭文件大小寫問(wèn)題的腳本解決方案-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://www.rwnh.cn/article6/ehdig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司虛擬主機(jī)、全網(wǎng)營(yíng)銷推廣、做網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
花莲县| 濮阳市| 辽宁省| 垣曲县| 博乐市| 乌苏市| 武平县| 黑山县| 荥经县| 长垣县| 治多县| 永丰县| 河池市| 南平市| 南开区| 张家港市| 筠连县| 白玉县| 阿勒泰市| 济源市| 乃东县| 周至县| 竹北市| 云浮市| 饶阳县| 思南县| 大安市| 武功县| 安阳市| 陇西县| 上杭县| 寻乌县| 佛冈县| 广东省| 贵阳市| 惠州市| 张家口市| 来宾市| 那坡县| 沁源县| 庆阳市|