shell腳本解析
㈠ 標準的shell腳本應該包含什麼
一個標準的shell腳本包括bin、conf、log三個文件夾。bin包含腳本的具體內容;conf包含腳本需要獲取的配置;log包含腳本執行過程有無錯誤的log和跟業務相關的log。在計算機科學中,Shell俗稱殼,是指「為使用者提供操作界面」的軟體(命令解析器)。它用於接收用戶命令,然後調用相應的應用程序。同時它又是一種程序設計語言。作為命令語言,它互動式解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;作為程序設計語言,它定義了各種變數和參數,並提供了許多在高級語言中才具有的控制結構,包括循環和分支。在排序演算法中,Shell是希爾排序的名稱。
㈡ shell腳本做文本解析同php和python比哪個效率更高
shell比較快,因為shell很多用的命令都是C寫的。
題外話:
我也是做運維的,我說說我的看法,不喜勿噴
腳本這一塊的話,我覺得順序跟腳本要實現的功能、復雜度有關系。
一般來說我會根據要實現的功能來決定使用哪門語言,比如說:如果我的腳本只是簡單的操作一下文件,創建一下目錄,或者只是臨時解決一些小問題或事件,那shell無論是開發效率和運行效率,都是其它語言沒法比的。
稍微大點的場景會使用python:比如,一個系列的工具集,有各種跟運維有關的方法,而且還要持續性往裡加功能的,那shell就沒法弄了(維護成本非常高)。
其他語言我不考慮,因為我主要的都是centos,自帶有python,其它語言還要另外裝環境。。我懶 :D
㈢ shell腳本解析一個文件
#! /bin/sh
#save the setting of IFS
SAVEIFS=$IFS
#assign new separator to IFS
IFS="="
while read name value
do
eval `echo $name=$value`
done<a.txt
a=$aaa
b=$bbb
c=$ccc
IFS=$SAVEIFS
echo "a=$a;b=$b;c=$c"
㈣ shell腳本做文本解析同php和python比哪個效率更高
N年前為了每天分析數十GB的日誌,正好做過測試。測試是在Linux環境下(Redhat ES
3),測試處理一個數百兆的日誌文件進行匯總分析(郵件日誌),分別用C, Perl,
Python,Shell做同樣的處理。處理速度排名是C>>Perl>python>shell。C是最快的,比別的快上至少
一個數量級;其次是Perl,畢竟是為文本處理而生,最強的內置正則表達式;Python比Perl慢了點,記得速度是Perl的60%左右;shell
最慢,雖然sed, grep,awk都不慢(其實都是C寫的),但通過shell組合在一起效率還是差了不少。
㈤ 如何利用Shell腳本解析XML文件(裡面是從資料庫導出的表結構)自動生成建表語句
你解析出這個xsd信息,然後拼創建表的sql就可以了
create table tradeInformation
( id int,
tradedate date,
tradeTime time)
㈥ 如何利用Shell腳本解析XML文件中標記之內的值
$cat test.sh
#!/bin/bash
if [ -z $1 ];then
echo 'USAGE:COMMAND FILENAME'
exit 0
fi
filename=record.txt
HOST=(`sed -n 's/.*>\(.*\)<\/host>/\1/p' $1`)
OIDG=(`sed -n 's/.*>\(.*\)<\/oidgroupname>/\1/p' $1`)
COMM=(`sed -n 's/.*>\(.*\)<\/communitystring>/\1/p' $1`)
DESC=(`sed -n 's/.*>\(.*\)<\/description>/\1/p' $1`)
FILE=(`ls -l $filename >/dev/null 2>&1 | awk '{print $8}'`)
if [ ! -z $FILE ];then
echo -e "host\t\toidgroupname\t\tcomm\t\tdesc" >$filename
fi
for((i=0;i<${#HOST[@]};i++));do
echo -e "${HOST[i]}\t${OIDG[i]}\t${COMM[i]}\t\t${DESC[i]}" >>$filename
done
$./test.sh file
$cat record.txt
host oidgroupname comm desc
192.168.1.1 CpuUtilization_MF public 192.168.1.1_CPUUtilizaton
192.168.1.2 CpuUtilization_MF public 192.168.1.2_CPUUtilizaton
192.168.1.3 CpuUtilization_MF public 192.168.1.3_CPUUtilizaton
192.168.1.4 CpuUtilization_MF public 192.168.1.4_CPUUtilizaton
192.168.1.5 CpuUtilization_MF public 192.168.1.5_CPUUtilizaton
㈦ shell腳本調用java返回的字元串含有shell變數如何解析
先運行java程序,然後用echo $?獲取程序的運行結果,如果是字元串,可以使用
result=$(java -jar xxx.jar)來獲取,當然這只是示例,$()中的命令使可以隨便修改的
㈧ shell腳本解釋
ls *.* | grep -i "flag.dat" 列出當前目錄中文件名中含有點的文件並找含有flag.dat的文件,-i表示不區分大小寫!當有一個文件的文件名為fmstarflag.dat時,執行$JOBDIR/bin/fmstarupd.sh這個腳本,並且刪除
$LOADDIR/fmstarflag.dat,大體就這么個意思,要是還不懂的話,建議先學學shell的語法吧!
㈨ shell腳本如何獲取文件內的字元串並解析
log=`grep HWaddr mylog.log`
hwaddr=`echo ${log##*HWaddr}`
num=`echo $hwaddr|grep -o :|wc -l `
判斷自己寫吧