Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MyNewFiles中搜索文件名包含偶数的所有文件,并将结果作为变量存储在bash中_Bash - Fatal编程技术网

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

在MyNewFiles中搜索文件名包含偶数的所有文件,并将结果作为变量存储在bash中,bash,Bash,到目前为止,我得到的是: #/bin/bash cd MyNewFiles pwd 对于{1..20}中的计数;做 echo“这是文件编号:”$count>file_u$count 完成 ls cd MyNewFiles chmod a+rwx文件2 chmod ug+rw文件4 chmodu+rwx文件_8 ls-lah 这假设数字位于文件名的末尾,您考虑的是整数(而不是它是否包含偶数——删除$以检查是否有任何数字),您的文件没有空格或特殊字符,并且您不想太迂腐,将0排除为偶数 你也可以这样

到目前为止,我得到的是:

#/bin/bash
cd MyNewFiles
pwd
对于{1..20}中的计数;做
echo“这是文件编号:”$count>file_u$count
完成
ls
cd MyNewFiles
chmod a+rwx文件2
chmod ug+rw文件4
chmodu+rwx文件_8
ls-lah
这假设数字位于文件名的末尾,您考虑的是整数(而不是它是否包含偶数——删除
$
以检查是否有任何数字),您的文件没有空格或特殊字符,并且您不想太迂腐,将0排除为偶数

你也可以这样做

var=$(cd MyNewFiles; ls -1 File_* | grep '[02468]$')
如果不希望包含路径

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

cd MyNewFiles
声明-a偶数文件
对于x英寸*
做
[[${x}=~[02468]$]&&偶数文件+=(“${x}”)
完成
#样本使用
rm“${偶数文件[@]}”

var=$(ls/path/to/MyNewFiles | grep-E'[24680]')?没有这样的文件或目录,我得到的是thatBash脚本不是Linux-speciifc。您想要任何包含偶数的文件名,还是整个数字应该是偶数?
367
匹配吗?抱歉,忘了添加,所以它的20个文件是用这个for循环在{1..20}中进行计数的;do echo“这是文件号:”$count>file_$count donespot在前半部分中打开如何将结果存储为变量?我已对其进行了更新,但如何将其存储在变量中部分取决于您以后要对其执行的操作。假设您有多个这样的文件,您可能希望将其保存为数组;我所写的内容以换行符分隔的字符串形式返回,这可能适用于您的目的。但是,我不确定您对使用数组有多熟悉。感谢您的帮助,我是一个完全的noob lol,我想做的是存储搜索当前目录中文件名包含偶数的所有文件,并将每个结果的结果作为变量存储在myVariable中:Delete fileTry
偶数文件=(MyNewFiles/*[02468])
偶数文件=(MyNewFiles/*[02468]*)
。不需要
cd
声明或循环。
var=$(cd MyNewFiles; ls -1 File_* | grep '[02468]$')