在日志文件夹下判断是否有web服务器的日志文件夹,写了个脚本:web
#!/bin/bash
cd /wls/annuity_acc
for sys in `cat ./WIIServer_name_list.txt`
do
#find /logs/$sys* -name "$sys*" |xargs echo -en '\n' >> 123.txt正则表达式
find /logs/$sys* -name "$sys*" -print
donebash
#find /logs/$sys* -name "$sys*" |xargs echo -en '\n' >> 123.txt 服务器
输出到123.txt,可是若是有多个匹配的状况会出现不换行的状况,如:ui
ABBSWII6758 ABBSWII6759 ABBSWII6760spa
annWII3454日志
gbsWII9876
想要如下格式输出到文本:web服务器
ABBSWII6758 it
ABBSWII6759 test
ABBSWII6760
annWII3454
gbsWII9876
只想到用-print方法
===============mark 2012-05-04=============
#find /logs/$sys* -name "$sys*" -exec ls -l {} \; >> 123.txt
能够获得列表效果
=============find -perm查找 多路径=============
这两天碰到一个查找某一路径下的非777的mdl文件,能够用如下来实现:
find /pamis/data5/cognos/createcubes8/*/mdl -name "*.mdl" -type f |xargs ls -l |grep -v rwx
find /pamis/data5/cognos/createcubes8/*/mdl -name "*.mdl" -type f ! -perm 777 -exec ls -l {} \;
以上两种获得的效果是同样的,可是若是要将获得的结果作为输入流传给&2,可能二者会有差异
find后面的路径支持多个,可是要以空格隔开,而且路径支持*?[1-9]这样的正则表达式:以下:
find /pamis/data5/cognos/createcubes8/*/mdl/[e,g,i,n,p][h,b,o,e][i,s,c,w,t,n]* -name "*.mdl" -type f ! -perm 777 -exec ls -l {} \; >&2
=========find -regex正则表达式查找 多路径===========
find /home/panzhaobo -name "*.pl" -type f ! -perm 777 -exec ls -l {} \;|xargs echo "" > testmdl.log
find -regex '/home/panzhaobo/.*\.pl' -type f ! -perm 777 -exec ls -l {} \;
上面的-regex是正则表达式后面的参数是带全路径的name