介绍:
我是脚本新手,最近决定从 Windows 换到 Ubuntu(Ubuntu 20.04.2 LTS),所以对很多事情都不熟悉。如果可以的话,我将不胜感激。
问题:
我有一个目录,里面全是带标签的项目,我想根据主题重新定位这些项目。有时某些标签会丢失,因为它们不适用。
一般结构为:(“CODE”)[“SUBJECT”(“USER”)]“GenericProjectName”.zip
最简单的结构是:["SUBJECT"]"GenericProjectName".zip
我想将文件从目录“OLD”移动到“NEW/SUBJECT”。
目录结构:
主要
----旧
--------("CODE")["SUBJECT"("USER")]"GenericProjectName".zip
--------("CODE")["SUBJECT"("USER")]"GenericProjectName".zip
----新
--------"SUBJECT"
答案1
解决方案:
对于每个 zip 文件,我获取文件名并使用 awk 获取“SUBJECT”。提取主题后,我创建一个同名的目录并将文件移入其中。因为它是一个 bash 脚本,所以我可以更轻松地使用所需的变量。
#!/bin/bash
for file in *.zip
do
filename=$(basename "$file")
dirname=`echo "$filename" | awk -F"[][]" '{print $2}'`
mkdir -p "$dirname" &&
mv -iv "$file" "$dirname"
done