如何根据条件查找文件
How to Find out files on condition
我有这样的行:
elastislide.css
handheld1119.css
job-listing1119.css
jquery-ui-1.8.23.custom1119.css
print1119.css
royalslider.min1119.css
staticlayout1119.css
style-imagegallery.css
style.min1119.css
我想找到 .css 文件类型的最后 4 个字符。例如,我想找到 1119 并将其存储在一个变量中,这最后 4 个字符每个月都会更改。
请帮忙。
没有任何上下文指示您希望如何使用此信息,很难 post 有用的代码,但以下循环遍历匹配项。
find . -type f -name '*[0-9][0-9][0-9][0-9].css' -print |
while read -r file; do
base=${file%.css}
prefix=${base%[0-9][0-9][0-9][0-9]}
printf "file: %s suffix: %s\n" "$file" "${base#$prefix}"
done
这演示了 ${var#prefix}
和 ${var%suffix}
变量替换。
如果文件名包含换行符,则 find | while
结构不安全。对于生产脚本,您应该使用更健壮的东西;但是对于快速或专门的脚本,这应该足够了。
我有这样的行:
elastislide.css
handheld1119.css
job-listing1119.css
jquery-ui-1.8.23.custom1119.css
print1119.css
royalslider.min1119.css
staticlayout1119.css
style-imagegallery.css
style.min1119.css
我想找到 .css 文件类型的最后 4 个字符。例如,我想找到 1119 并将其存储在一个变量中,这最后 4 个字符每个月都会更改。
请帮忙。
没有任何上下文指示您希望如何使用此信息,很难 post 有用的代码,但以下循环遍历匹配项。
find . -type f -name '*[0-9][0-9][0-9][0-9].css' -print |
while read -r file; do
base=${file%.css}
prefix=${base%[0-9][0-9][0-9][0-9]}
printf "file: %s suffix: %s\n" "$file" "${base#$prefix}"
done
这演示了 ${var#prefix}
和 ${var%suffix}
变量替换。
如果文件名包含换行符,则 find | while
结构不安全。对于生产脚本,您应该使用更健壮的东西;但是对于快速或专门的脚本,这应该足够了。