内射老阿姨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://m.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è)
延安市| 兴义市| 土默特右旗| 兴仁县| 贵南县| 高唐县| 恩施市| 宁德市| 孟津县| 宜兴市| 武隆县| 乌鲁木齐县| 石泉县| 榆树市| 江永县| 富阳市| 湟源县| 新巴尔虎右旗| 象山县| 南投县| 当阳市| 鲁山县| 陈巴尔虎旗| 夹江县| 河源市| 城固县| 漯河市| 海南省| 青龙| 怀安县| 仁化县| 武夷山市| 噶尔县| 咸宁市| 镇赉县| 泸定县| 枣庄市| 嘉定区| 栾城县| 百色市| 房山区|