簡體   English   中英

用awk剪切我的FILENAME變量的輸出?

[英]Cut the output of my FILENAME variable with awk?

我有這個腳本:

for fn in /var/www/cgi-bin/LPAR_MAP/*; do awk -F',|;' 'NR==1 { print "FILENAME ========================== : " FILENAME }
/'$test'/ { 

print ""
print "LPARS :" $2

print "RAM : " $5

print "CPU 1 : " $6

print "CPU 2 : " $7

print "" 
print ""}' $fn; done

這個腳本可以讓我顯示來自CSV的信息,如下所示:

FRAME : MIAIBYA00 
------------------

FILENAME ========================== : /var/www/cgi-bin/LPAR_MAP/PowerSys-LPARProcPool-20180705.csv

LPARS :miavioya01-not-work
RAM : 
CPU 1 : 
CPU 2 : 


FILENAME ========================== : /var/www/cgi-bin/LPAR_MAP/PowerSys-LPARmap-20180122.csv

LPARS :miaibc05
RAM : 40
CPU 1 : null
CPU 2 : 2



LPARS :miaiba05
RAM : 18
CPU 1 : null
CPU 2 : 2

文件名輸出為:

FILENAME ========================== : /var/www/cgi-bin/LPAR_MAP/PowerSys-LPARmap-20180122.csv

但我只想保留日期:

FILENAME ========================== : 20180122

我可以使用以下命令在終端中執行此操作:

echo FILENAME ========================== : /var/www/cgi-bin/LPAR_MAP/PowerSys-LPARmap-20180122.csv | cut -d '-' -f4 | cut -d'.' -f1


但是我不知道該如何在腳本中執行此操作...您可以告訴我如何執行此操作嗎?

更改

{ print "FILENAME ========================== : " FILENAME }

{ split(FILENAME,a,"[-.]");print "FILENAME ========================== : " a[4] }

它將FILENAME-和分隔. 並將其存儲在數組a 然后日期應在陣列堡壘塊aa[4]

{split($0,a,"[-.]");t=substr(a[4],1,4)"-"substr(a[4],5,2)"-"substr(a[4],7);print t}
2018-01-22

您可以使用以下代碼:

for fn in /home/bodia/affdex-sdk/docs/*; do awk -F',|;' 'function basename(file, a, n) {
    n = split(file, a, "/")
    split(a[n], a, ".")
    return a[1]
  }
 NR==1 { print "FILENAME ========================== : " basename(FILENAME) }
/'$test'/ { 

print ""
print "LPARS :" $2

print "RAM : " $5

print "CPU 1 : " $6

print "CPU 2 : " $7

print "" 
print ""}' $fn; done

最簡單的方法是提供多個字段分隔符,例如-F[-]"|"[.] ,這會將您的數字分隔為$(NF-1) 例如:

awk -F[-]"|"[.] '{ print $(NF-1) }'

結果輸出:

20180122

在您希望與"FILENAME"匹配的完整文件的開頭運行,例如

awk -F[-]"|"[.] '/^FILENAME/{ print $(NF-1) }'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM