要复制写日志文件,目录结构如下:
第一级:
/logs
第二级:
server1
server2
....
第三级:
HR
Staff
Travel
...
第四级:
http
https
第五级
access.20090721.gz
errors.20090721.gz
access.20090722.gz
errors.20090722.gz
......
希望做个脚本,将这些文件复制到 /logs/archive目录下,新文件名改成:
access.HR.server1.http.20090721.gz
errors.Staff.server2.https.20090721.gz
.....
这个如何做到?
find /logs/server* -type f | awk -F"[/.]" '{system("cp "$0" /logs/archive/"$6"."$4"."$3"."$5"."$7"."$8)}'
在awk脚本中,想要system函数中执行某调命令,想往里传一参数,比如:
var=“/tmp/file”;
system("cat var"); #想执行 “cat /tmp/file”命令
system("cat /tmp/file"); #这样是没有问题
awk 'BEGIN{var = "cat a.txt";system(var)}'