[英]Delete useless/empty line with my awk script
對於我的bash / html中的CGI,我有以下腳本(只是awk腳本,其余代碼只是一個簡單的hmtl代碼):
for fn in /var/www/cgi-bin/LPAR_MAP/*; do
awk -F',|;' 'NR==1 { split(FILENAME ,a,"[-.]");
print "DATE ========================== : " a[4] }
/'$test'/ {
print ""
print "LPARS :" $2
print "RAM : " $5
print "CPU 1 : " $6
print "CPU 2 : " $7
print ""
print ""}' $fn;
done
我的腳本分析了許多CSV文件並像這樣顯示我需要的信息:
DATE ========================== : 20180122
LPARS :miaibye01
RAM : 60
CPU 1 : 1.0
CPU 2 : 2
LPARS :miaibg04
RAM : 99
CPU 1 : 1.5
CPU 2 : 3
LPARS :miaibk07
RAM : 52
CPU 1 : 2.5
CPU 2 : 5
DATE ========================== : 20180124
LPARS :miaibye01
RAM : 60
CPU 1 : 1.0
CPU 2 : 2
LPARS :miaibg04
RAM : 99
CPU 1 : 1.5
CPU 2 : 3
LPARS :miaibk07
RAM : 52
CPU 1 : 2.5
CPU 2 : 5
LPARS :miaibv176
RAM : 0.25
CPU 1 : 0.1
CPU 2 : 1
...
但是有時候,當我的腳本找不到所需的信息時,它會顯示所需的信息,並在腳本中查找該信息的文件日期。 輸出為:
DATE ========================== : 20180923
DATE ========================== : 20180924
DATE ========================== : 20180925
DATE ========================== : 20180926
DATE ========================== : 20180927
DATE ========================== : 20180928
DATE ========================== : 20180929
DATE ========================== : 20180930
DATE ========================== : 20181001
我搜索了如何用awk腳本刪除(或不顯示)這些無用的行,但是我不知道如何...您有這樣做的想法嗎?
您可以簡單地做到這一點:
for fn in /var/www/cgi-bin/LPAR_MAP/*; do
awk -F',|;' -v test="$test" '
NR==1 {
split(FILENAME ,a,"[-.]");
}
$0 ~ test {
if(!header++){
print "DATE ========================== : " a[4]
}
print ""
print "LPARS :" $2
print "RAM : " $5
print "CPU 1 : " $6
print "CPU 2 : " $7
print ""
print ""
}' $fn;
done
僅在$ 0〜$ test時才第一次打印標題。 請注意,我對您的代碼做了一些更改,以創建一個等於$test
的awk變量。 這將對代碼注入更加健壯。
您不需要為此的shell循環,只需:
awk -F'[,;]' -v test="$test" '
FNR==1 { doneHdr = 0 }
$0 ~ test {
if ( !doneHdr++ ) {
split(FILENAME,a,/[-.]/)
print "DATE ========================== : " a[4]
}
print ""
print "LPARS :" $2
print "RAM : " $5
print "CPU 1 : " $6
print "CPU 2 : " $7
print ""
print ""
}
' /var/www/cgi-bin/LPAR_MAP/*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.