gpt4 book ai didi

linux - 用于更改不同扩展名的文件名的 Bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:51 25 4
gpt4 key购买 nike

<分区>

我们正在开发一个 angularjs 项目,其中编译后的输出包含许多文件扩展名,如 js、css、woff 等,以及作为文件名一部分的单独动态哈希。

我正在使用简单的 bash 脚本来搜索属于上述文件扩展名的文件,并移动到某个文件夹,并删除散列搜索“.”的第一个实例。

请注意应保留文件扩展名 .woff 和 .css。

/src/main.1cc794c25c00388d81bb.js   ==> /dst/main.js  
/src/polyfills.eda7b2736c9951cdce19.js ==> /dst/polyfills.js
/src/runtime.a2aefc53e5f0bce023ee.js ==> /dst/runtime.js
/src/styles.8f19c7d2fbe05fc53dc4.css ==> /dst/styles.css
/src/1.620807da7415abaeeb47.js ==> /dst/1.js
/src/2.93e8bd3b179a0199a6a3.js ==> /dst/2.js
/src/some-webfont.fee66e712a8a08eef580.woff ==> /dst/some-webfont.woff
/src/Web_Bd.d2138591460eab575216.woff ==> /dst/Web_Bd.woff

Bash 代码:

#!/bin/bash
echo Process web binary files!

echo Processing the name change for js files!!!!!!!!!!!!!
sfidx=0;
SFILES=./src/*.js #{js,css,voff}
DST=./dst/

for files in $SFILES
do
echo $(basename $files)
cp $files ${DST}"${files//.*}".js
sfidx=$((sfidx+1))
done
echo Number of target files detected in srcdir $sfidx!!!!!!!!!!

上面的代码有两个问题,需要在一个共同的地方在 for 循环中添加文件扩展名,而不是为每个扩展名运行。但是,这个方法失败了,不确定是否需要更改。

SFILES=./src/*.{js,css,voff}
cp: cannot stat `./src/*.{js,css,voff}': No such file or directory

其次,cp cmd 由于以下原因失败,需要一些帮助来找出正确的语法。

cp $files ${DST}"${files//.*}".js  
1.620807da7415abaeeb47.js
cp: cannot create regular file `./dst/./src/1.620807da7415abaeeb47.js.js': No such file or directory

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com