Bash“;用于“文件”中的文件;例外
我知道了Bash“;用于“文件”中的文件;例外,bash,shell,Bash,Shell,我知道了 for file in *; do any command done 我想做的是在“for file in*;do”中添加一个异常 有什么想法吗?例如,你有文件 $ ls -1 ./ ./M2U0001.MPG ./M2U0180.MPG ./text 异常文件是M2U0180.MPG $> filename="M2U0180.MPG" 及 完成奇怪的解决方案:)如果要跳过具有特定扩展名的文件,例如“.pl”,可以执行以下操作: for file in * do
for file in *; do
any command
done
我想做的是在“for file in*;do”中添加一个异常
有什么想法吗?例如,你有文件
$ ls -1 ./
./M2U0001.MPG
./M2U0180.MPG
./text
异常文件是M2U0180.MPG
$> filename="M2U0180.MPG"
及
完成奇怪的解决方案:)如果要跳过具有特定扩展名的文件,例如“.pl”,可以执行以下操作:
for file in *
do
[ "${file##*.}" != "pl" ] && echo $file
done
一种方法是使用if语句(或者只使用grep-v ls cmd)循环检查文件名:
使用bash的扩展globbing
shopt -s extglob
for f in !(excluded-file); do echo "$f"; done
一个简单的解决方案:
下面的代码段将打印pwd中扩展名为.py的所有文件
for i in * ;do
if [[ $i == *.py ]];then
echo "$i"
fi
done
因为我在*;做
如果[[$i==*.py]];然后
回音“$i”
fi
完成
“异常”是指要排除一个或多个文件与
*
匹配吗?如果是这样,您可以在循环中使用If
语句来避免对特定文件执行操作。异常是什么意思<代码>如果[[$file!=异常]];然后;fi?工作起来很有魅力。非常感谢。这里的即兴表演很好。非常感谢。这就是我要找的,一个扩展检查器。谢谢
shopt -s extglob
for f in !(excluded-file); do echo "$f"; done
for i in * ;do
if [[ $i == *.py ]];then
echo "$i"
fi
done