我需要在bash脚本中反转for循环。有一个目录,其中包含以%Y%m.mp4(201701.mp4; 201702.mp4,201703.mp4,...)命名的视频。循环应该以最早的文件名开头(例如201712.mp4)如何反转我的for循环?
<ng-container *ngIf="showButtonWithDisabledExpr">
<button [disabled]="someExpression">Clippy</button>
</ng-container>
<ng-container *ngIf="!showButtonWithDisabledExpr">
<button>Clippy</button>
</ng-container>
答案 0 :(得分:4)
您可以通过以下方式按预订顺序列出文件:
ls -1 $outputdir/*.mp4 | sort -r
所以在你的脚本中你可以这样做:
outputdir="/path/to/video/monthly/"
for file in $(ls -1 $outputdir*.mp4 | sort -r)
do
echo $file
done
注意:正如@Pesa所指出的,此解决方案无法使用带空格的文件名。如果是这种情况,您应该引用命令:"$(ls -1 $outputdir*.mp4 | sort -r)"
并使用"$file"
<强>更新强>: 请参阅以下测试
mkdir test && cd $_
for i in {1..5}; do touch test_$i.txt; done
cd -
ls -1 test/*.txt
将输出:
test/test_1.txt
test/test_2.txt
test/test_3.txt
test/test_4.txt
test/test_5.txt
ls -1 test/*txt | sort -r
将输出:
test/test_5.txt
test/test_4.txt
test/test_3.txt
test/test_2.txt
test/test_1.txt