shell實現配置檔案解析

2021-09-11 05:42:44 字數 2091 閱讀 8125

需求:解析乙個特定格式的檔案(這個檔案可以成為乙個配置檔案),逐行讀取,並列印出來。

方案:while實現讀取,然後用awk進行讀取相應的值。

第一步:用while讀取檔案。

while read filedo…

……done < config.txt

這裡file是乙個變數,代表讀的那一行,shell是弱資料型別語言,所以file這個變數是字串變數。

第二步:獲取file變數中的值。(以空格為分割線進行處理)

a=`echo $file |awk ''`

b=`echo $file |awk ''`

c=`echo $file |awk ''`

d=`echo $file |awk ''`

e=`echo $file |awk ''`

echo '++++++++++++++++++++++++++++'

echo a=$a

echo b=$b

echo c=$c

echo d=$d

echo e=$e 

echo '++++++++++++++++++++++++++++'

這樣我們就可以得到相應的變數值了。如:

列印結果為:

++++++++++++++++++++++++++++

a=b=c=ext="xiyouji"

d=name="sunwukong"

e=path="huaguoshan"

f=/>

++++++++++++++++++++++++++++

可以看到,$0 代表了全部,12345分別對應了空格分開的字段

第三步:獲取上面變數中的值

echo '*************************===='

ext=`echo $c |awk -f '"' ''`

name=`echo $d |awk -f '"' ''`

path=`echo $e |awk -f '"' ''`

echo ext is:$ext

echo name is:$name

echo path is:$path

echo '*************************===='

列印結果為:

*************************====

ext is:xiyouji

name is:sunwukong

path is:huaguoshan

*************************====

原理同上

第四步:awk的詳細解釋。

總結:awk中如果沒有用-f指定特定的分割符號,預設是用空格進行分割,讀者可以自行嘗試修改config.txt的內容,用不同的分割符進行練習

完整**:

#!/bin/bash

while read file

doa=`echo $file |awk ''`

b=`echo $file |awk ''`

c=`echo $file |awk ''`

d=`echo $file |awk ''`

e=`echo $file |awk ''`

echo '++++++++++++++++++++++++++++'

echo a=$a

echo b=$b

echo c=$c

echo d=$d

echo e=$e 

echo '++++++++++++++++++++++++++++'

ext=`echo $c |awk -f '"' ''`

name=`echo $d |awk -f '"' ''`

path=`echo $e |awk -f '"' ''`

echo '*************************===='

echo ext is:$ext

echo name is:$name

echo path is:$path

echo '*************************===='

done < config.txt

config.txt的內容為:

C實現解析配置檔案

readconfigfile.cpp 定義控制台應用程式的入口點。include stdafx.h typedef struct configvalue configvalue typedef struct session session typedef struct configfile bool...

配置檔案解析函式

config.h this file is usred for parsing configure file.e mail yhniejun 163.com 2007.01.25 mr.nie the struct of config file.struct conf info typedef st...

tinyxml解析配置檔案

一 tinyxml類簡單介紹 tinyxml實現的時dom訪問模型,因此提供了一系列的類對應xml檔案中的各個節點。主要類間的關係如下圖所示 tixmlbase 其他類的基類,是個抽象類 tixmldocument 表示整個xml文件,不對應其中某個特定的節點。tixmlelement 表示元素節點...