Shell script - Linux 에서 ini 프로필 분석
위의 데이터 가 필요 합 니 다. 예 를 들 어 N 다 중 호스트 의 로 그 를 합병 한 다음 에 다음 단계 의 분석 을 해 야 합 니 다.이때 IP
에 서 는 다음 에 호스트 한 대 를 추가 하면 스 크 립 트 를 수정 해 야 합 니 다. 여러 스 크 립 트 와 관련 되면 이러한 작업 은
공용 함수 스 크 립 트
listIniSections
Desc:
section
Usage:
listIniSections ini-config-file
listIniKeys
Desc:
section key
Usage:
listIniSections ini-config-file section-name
listIniValues
Desc:
section value
Usage:
listIniSections ini-config-file section-name
listIniKeysValues
Desc:
section key value
Usage:
listIniSections ini-config-file section-name
각본
## , ,
##
vim /devOps/shell/common/functions
#!/usr/bin/env bash
##
## 2016-05-12
## ini sections
## listIniSections "filename.ini"
##
listIniSections()
{
inifile="$1"
# echo "inifile:${inifile}"
# # exit
if [ $# -ne 1 ] || [ ! -f ${inifile} ]
then
echo "file [${inifile}] not exist!"
exit
else
sections=`sed -n '/\[*\]/p' ${inifile} |grep -v '^#'|tr -d []`
echo "${sections}"
fi
}
##
## 2016-05-12
## ini section key
## ini section
## listIniSections "filename.ini" "section"
##
listIniKeys()
{
inifile="$1"
section="$2"
if [ $# -ne 2 ] || [ ! -f ${inifile} ]
then
echo "ini file not exist!"
exit
else
keys=$(sed -n '/\['$section'\]/,/^$/p' $inifile|grep -Ev '\[|\]|^$'|awk -F'=' '{print $1}')
echo ${keys}
fi
}
##
## 2016-05-12
## ini section value
## ini section
## listIniSections "filename.ini" "section"
##
listIniValues()
{
inifile="$1"
section="$2"
if [ $# -ne 2 ] || [ ! -f ${inifile} ]
then
echo "ini file [${inifile}]!"
exit
else
values=$(sed -n '/\['$section'\]/,/^$/p' $inifile|grep -Ev '\[|\]|^$'|awk -F'=' '{print $2}')
echo ${values}
fi
}
## 2016-06-01
## ini section key - value
## ini section
## listIniSections "filename.ini" "section"
##
listIniKeysValues()
{
inifile="$1"
section="$2"
if [ $# -ne 2 ] || [ ! -f ${inifile} ]
then
echo "ini file [${inifile}]!"
exit
else
values=$(sed -n '/\['$section'\]/,/^$/p' $inifile|grep -Ev '\[|\]|^$'|awk -F'=' '{print $1, $2}')
echo ${values}
fi
}
구체 적 인 실례
ini 형식 프로필
root@pts/2 $ cat hostList.ini
[juepei]
web1=192.168.88.2
web2=192.168.88.15
[miaowu]
web1=192.168.200.2
web2=192.168.200.3
테스트 스 크 립 트
root@pts/0 $ cat 20160620.sh
#!/usr/bin/env bash
source /devOps/shell/common/functions
iniconfig="/tmp/liuchao/hostList.ini"
echo "list all sections"
listIniSections ${iniconfig}
echo -e "
list section [juepei] keys"
listIniKeys ${iniconfig} juepei
echo -e "
list section [juepei] values"
listIniValues ${iniconfig} juepei
echo -e "
list section [miaowu] keys and values"
listIniKeysValues ${iniconfig} juepei
테스트 결과
root@pts/0 $ bash 20160620.sh
list all sections
juepei
miaowu
list section [juepei] keys
web1 web2
list section [juepei] values
192.168.88.2 192.168.88.15
list section [miaowu] keys and values
web1 192.168.88.2 web2 192.168.88.15
맞 춤 형 도구 로 삼다
#!/usr/bin/env bash
# -*- coding: utf-8 -*-
#Filename: lc_parseINI
#Author: Liuchao
#Email: [email protected]
#Date: 2016-06-20
#Desc: Linux INI
#
source /devOps/shell/common/functions
echo "$1 - $2 - $3"
## 2
if [ $# -gt 3 ] || [ $# -lt 1 ]
then
echo "Usage:`basename $0` [-s/-k/-v/-a] iniconfig [section]"
exit
else
# param1="$1"
# if [ $# -eq 1 ] && [ "${param1:0-3}" = "ini" ]
if [ $# -eq 1 ] && [ "${1:0-3}" = "ini" ]
then
listIniSections "$1"
elif [ $# -eq 2 ] && [ "$1" = "-s" ]
then
listIniSections "$2"
elif [ $# -eq 3 ] && [ "$1" = "-s" ]
then
listIniSections "$2"
elif [ $# -eq 3 ] && [ "$1" = "-a" ]
then
listIniKeysValues "$2" "$3"
elif [ $# -eq 3 ] && [ "$1" = "-k" ]
then
listIniKeys "$2" "$3"
elif [ $# -eq 3 ] && [ "$1" = "-v" ]
then
listIniValues "$2" "$3"
else
echo "You enter wrong params!"
echo "Usage:`basename $0` [-s/-k/-v/-a] iniconfig section"
exit
fi
fi
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.