1
匹配的文件以及目录
我需要存储在shell脚本匹配单个变量的文件和目录名如何存储和删除UNIX
log_dir=`echo $line | awk -F "$delimiter" '{print $1}'`
pattern=`echo $line | awk -F "$delimiter" '{print $2}'`
days=`echo $line | awk -F "$delimiter" '{print $3}'`
flag=`echo $line | awk -F "$delimiter" '{print $4}'`
now=$(date +%s)
matching_files=`find $log_dir/$pattern`
for f in $matching_files ; do
//code
done
但我得到下面的错误我
find: `magsubmit_*': No such file or directory
matching_files=
上市后我需要删除两个匹配的文件和目录以及我可以使用单个命令吗?而不是rmf和rm -rf?
如何实现这个?
'$ line'中有什么?你能举一个例子吗? – hansaplast
另外:请在示例中删除行'days = ...','flag = ...'和'now = ...',因为它们不需要解释问题 – hansaplast
在我看来,最新的方式处理这些事情通常是用'find'$ log_dir /“$ pattern -exec bash script.sh {} +'替换你的'matching_files = $(找到”$ log_dir /“$ pattern” .sh'是一个shell脚本,可能是为了这个单一命令的目的而创建的,它包含了$ for_files中for $的代码。做...完成“命令,处理它所给出的参数(所以'对于$ @”'中的f)。该机制处理文件名中的奇怪字符(空格,换行符等)。并非所有人都同意这一点;通常似乎需要用一条线来完成。 –