我有这个剧本:

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]中的fort块。
{split($0,a,"[-.]");t=substr(a[4],1,4)"-"substr(a[4],5,2)"-"substr(a[4],7);print t}
2018-01-22

10-04 22:13