Python Bash脚本来标识子目录中的文件扩展名,并相应地对父控制器进行分组
我有100个从Github克隆的文件夹。每个文件夹都有Java、JavaScript、C#或Python代码。我正在尝试编写一个脚本,查看每个文件夹,并根据以下编程语言将它们移动到不同的文件夹中: 实际值:Python Bash脚本来标识子目录中的文件扩展名,并相应地对父控制器进行分组,python,node.js,bash,Python,Node.js,Bash,我有100个从Github克隆的文件夹。每个文件夹都有Java、JavaScript、C#或Python代码。我正在尝试编写一个脚本,查看每个文件夹,并根据以下编程语言将它们移动到不同的文件夹中: 实际值: 父文件夹1 子文件夹 子文件夹 子文件夹 。。 MyFile.java 父文件夹2 子文件夹 子文件夹 子文件夹 。。 MyFile2.java 父文件夹3 子文件夹 子文件夹 。。 MyFile.js 父文件夹4 子文件夹 子文件夹 。。 MyF
- 父文件夹1
- 子文件夹
- 子文件夹
- 子文件夹
- 。。 MyFile.java
- 子文件夹
- 子文件夹
- 父文件夹2
- 子文件夹
- 子文件夹
- 子文件夹
- 。。 MyFile2.java
- 子文件夹
- 子文件夹
- 父文件夹3
- 子文件夹
- 子文件夹
- 。。 MyFile.js
- 子文件夹
- 子文件夹
- 父文件夹4
- 子文件夹
- 子文件夹
- 。。 MyFile.cs
- 子文件夹
- 子文件夹
- 爪哇
- 父文件夹1
- 子文件夹
- 子文件夹
- 。。 MyFile.java
- 父文件夹2
- 子文件夹
- 子文件夹
- 。。 MyFile.java
- 父文件夹1
- JS
- 父文件夹3
- 子文件夹
- 子文件夹
- 。。 MyFile.js
- 父文件夹3
- 蟒蛇
- 父文件夹3
- 子文件夹
- 子文件夹
- 。。 MyFile.py
- 父文件夹3
正如您现在看到的,回购协议根据编程语言分组到父文件夹中。请尝试以下操作:
declare -A ext2dir=(["java"]="Java" ["js"]="JS" ["py"]="Python" ["cs"]="CS")
# add pairs of extension and group name according to your files
while IFS= read -r -d "" f; do
ext="${f##*.}" # extracts extension such as "java"
parent="${f#./}" # remove leading "./"
parent="${parent%%/*}" # extracts parent dirname such as "ParentFolder1"
[[ -n ${ext2dir[$ext]} ]] && declare -A group[$parent]="${ext2dir[$ext]}"
# create a map to associate parent dirname (e.g "ParentFolder1") with group name (e.g. "Java")
done < <(find . -type f -name "*.*" -print0)
for parent in "${!group[@]}"; do
mkdir -p "${group[$parent]}"
mv -- "$parent" "${group[$parent]}"
done
declare-A ext2dir=([“java”]=“java”[“js”]=“js”[“py”]=“Python”[“cs”]=“cs”)
#根据文件添加扩展名和组名对
而IFS=read-r-d“f;做
ext=“${f##*.}”提取扩展名,如“java”
parent=“${f#./}”删除前导“/”
parent=“${parent%%/*}”提取父目录名,如“ParentFolder1”
[[-n${ext2dir[$ext]}]]&声明-A组[$parent]=“${ext2dir[$ext]}”
#创建一个映射以将父目录名(例如“ParentFolder1”)与组名(例如“Java”)关联
done<你尝试过什么吗?是的,我尝试过使用Node.js脚本,但是它比我最初认为的复杂得多,而且没有真正起作用。谢谢,我会尝试的