惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
Security Latest
Security Latest
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
The Register - Security
The Register - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
MyScale Blog
MyScale Blog
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
博客园 - 叶小钗
H
Help Net Security
大猫的无限游戏
大猫的无限游戏
U
Unit 42
G
Google Developers Blog
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
PCI Perspectives
PCI Perspectives
The Last Watchdog
The Last Watchdog
有赞技术团队
有赞技术团队
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Application and Cybersecurity Blog
Application and Cybersecurity Blog
雷峰网
雷峰网
SecWiki News
SecWiki News
Google Online Security Blog
Google Online Security Blog
S
Security @ Cisco Blogs
N
News | PayPal Newsroom
The Hacker News
The Hacker News
月光博客
月光博客
T
Threatpost
B
Blog
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
L
LangChain Blog
Scott Helme
Scott Helme
Last Week in AI
Last Week in AI
C
Check Point Blog
P
Privacy International News Feed

博客园 - 鹅要长大

【ubuntu基础】使用sshfs挂载远程主机目录 【c++编程基础】理解lambda表达式 【c++编程基础】字节对齐pack的理解 【c++编程基础】虚函数virtual的理解与使用 【linux基础知识】理解nohup 【linux基础】如何理解python train_dtld.py 2>&1 | tee my_error_log.txt 【工具使用】docker的使用 【基础算法】银行家舍入法 【ubuntu工具】ubuntu好用工具总结 【ubuntu基础工具使用】ubuntu中screen的安装与使用 【linux基础操作】windows系统生成的txt文件在ubuntu打开乱码 【opencv编程基础】fillpoly和polylines函数的理解 【c++编程基础】std::unique的理解 【编程基础】计算三个顶点之间的夹角 【计算几何算法】道格拉斯普克(Douglas-Peuker)算法 [c++]c++ 工程代码中的debug时条件编译隐去的代码会影响程序运行的性能和耗时吗 【CV基础】语义分割任务计算类别权重 【opencv基础】resize使用的问题 git stash的用法 gflags的使用 opencv 判断某个坐标点是否在多边形内cv::pointPolygonTest 判断多边形的顶点内外角点以及对approxPolyDP函数的理解 用Python从零实现贝叶斯分类器 【CV数据集】智慧城市之CCPD车牌数据集
【linux操作基础】多目录文件复制且同名不覆盖
鹅要长大 · 2025-03-17 · via 博客园 - 鹅要长大

前言

最近整理不同gt文件计算类别权重,发现整合后的gt文件数量变少,原因是不同目录中文件有同名的,发生覆盖,故记录之;

相关脚本:

脚本1:同名不覆盖复制文件

# 同名不覆盖复制文件
#!/bin/bash

# 源目录
source_dir="./train/"
# 目标目录
destination_dir="./gtrain/"

# 创建目标目录(如果不存在)
mkdir -p "$destination_dir"

find "$source_dir" -type f -name "*.png" | while read -r file; do
    filename=$(basename "$file")
    target_file="$destination_dir/$filename"
    counter=1
    while [ -e "$target_file" ]; do
        base_name="${filename%.*}"
        extension="${filename##*.}"
        target_file="$destination_dir/${base_name}_${counter}.${extension}"
        counter=$((counter + 1))
    done
    cp "$file" "$target_file"
    echo "Copied $file to $target_file"
done

 脚本2:多目录下文件按照一定规则重命名

#!/bin/bash

dirs_img="
/media/485E234682AE9EFD/01_dataset/APA/anno_image/data/yuyan_multitask_batch12_1434_20250311_700_img
/media/485E234682AE9EFD/01_dataset/APA/anno_image/data/yuyan_multitask_batch12_1434_20250311_734_img
"
for dir in $dirs_img; do
    echo $dir
    for file in $dir/*.png; do
        # echo $file
        # 检查是否是文件
        if [[ -f $file ]]; then
            # 重命名文件,添加后缀
            # mv "$file" "${file}${suffix}"
            suffix=`echo $file|sed -r 's/(.*)(\..*)/\1_leftImg8bit\2/g'`
            # suffix=`echo $file|sed -r 's/(.*)(\..*)/\1_gtFine_labelIds\2/g'`
            # suffix=`echo $file|sed -r 's/(.*)(\..*)/\1_gtFine_labelIds\2/g'`
            mv $file $suffix
        fi
    done
done

dirs_gt="
/media/485E234682AE9EFD/01_dataset/APA/anno_image/data/yuyan_multitask_batch12_1434_20250311_700_gt
/media/485E234682AE9EFD/01_dataset/APA/anno_image/data/yuyan_multitask_batch12_1434_20250311_734_gt
"
for dir in $dirs_gt; do
    echo $dir
    for file in $dir/*.png; do
        # echo $file
        # 检查是否是文件
        if [[ -f $file ]]; then
            # 重命名文件,添加后缀
            # mv "$file" "${file}${suffix}"
            # suffix=`echo $file|sed -r 's/(.*)(\..*)/\1_leftImg8bit\2/g'`
            suffix=`echo $file|sed -r 's/(.*)(\..*)/\1_gtFine_labelIds\2/g'`
            # suffix=`echo $file|sed -r 's/(.*)(\..*)/\1_gtFine_labelIds\2/g'`
            mv $file $suffix
        fi
    done
done

 脚本3:文件名称太长,将名称批量化写入txt文件

# 文件名称太长,将名称批量化写入txt文件
find gt/ -type f -printf "%f\n" > gt.txt

END

各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。

Simple is clean. Complex is clever.
Logic & Aesthetics
Seeking Ground Truth within the pixels.

版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/