我有这个剧本:
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
中。那么日期应该是数组a
,a[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