在MyNewFiles中搜索文件名包含偶数的所有文件,并将结果作为变量存储在bash中



这就是我目前所拥有的:

#!/bin/bash
cd MyNewFiles
pwd
for count in {1..20}; do
echo "This is file number:" $count > File_$count
done
ls
cd MyNewFiles
chmod a+rwx File_2
chmod ug+rw File_4
chmod u+rwx File_8
ls -lah
var=$(ls -1 MyNewFiles/File_* | grep '[02468]$')

这假设数字在文件名的末尾,您正在考虑整个数字(而不是它是否包含偶数——删除$以检查是否有任何数字(,您的文件没有空格或特殊字符,并且您不想过于迂腐,将0排除为偶数。

你也可以做

var=$(cd MyNewFiles; ls -1 File_* | grep '[02468]$')

如果您不希望包含该路径。

请注意,这是一种快速而肮脏的做事方式(不建议用于生产代码(。正确的做法是使用数组,这对您来说是一个更高级的主题,但对子孙后代来说,是规范形式(纯bash(:

cd MyNewFiles
declare -a even_files
for x in *
do 
[[ ${x} =~ [02468]$ ]] && even_files+=( "${x}" )
done
# Sample usage
rm "${even_files[@]}"

最新更新