当前位置: 首页 > article >正文

【iOS】FFmpeg更改文件名

FFmpeg更改文件名, 文件名最终格式:libavutil_avutil.h

脚本存放目录:

目录:
		change_name.sh
		thin
			include	
				libavcodec
				libavfilter
				libavformat
				.....
			libs
#!/bin/sh

THIN=$(pwd)/"thin"

echo "Renaming header files and updating includes"
INCLUDE_DIR="$THIN/include"
MODULES="libavcodec libavfilter libavformat libavutil libswresample libswscale"

# 临时存储重命名文件映射
RENAME_MAP=$(mktemp)

# Step 1: Rename header files
for MODULE in $MODULES
do
    if [ -d "$INCLUDE_DIR/$MODULE" ]; then
        cd "$INCLUDE_DIR/$MODULE"
        for HEADER in *.h
        do
            if [ -f "$HEADER" ]; then
                # Skip if file is already renamed
                if [[ "$HEADER" != ${MODULE}_* ]]; then
                    NEW_NAME="${MODULE}_${HEADER}"
                    mv "$HEADER" "$NEW_NAME"
                    echo "$MODULE/$HEADER,$NEW_NAME" >> "$RENAME_MAP"
                    echo "Renamed $HEADER to $NEW_NAME"
                fi
            fi
        done
    fi
done

# Step 2: Scan and update includes
for MODULE in $MODULES
do
    if [ -d "$INCLUDE_DIR/$MODULE" ]; then
        cd "$INCLUDE_DIR/$MODULE"
        for FILE in *.h
        do
            if [ -f "$FILE" ]; then
                # Read file and replace #include directives
                TEMP_FILE="${FILE}.tmp"
                while IFS= read -r LINE
                do
                    if echo "$LINE" | grep -qE '^#include ".*"'; then
                        INCLUDE_PATH=$(echo "$LINE" | sed -E 's/^#include "(.*)"/\1/')
                        
                        if echo "$INCLUDE_PATH" | grep -q "/"; then
                            # 包含路径的 #include
                            MODULE_PATH=$(dirname "$INCLUDE_PATH")
                            BASE_NAME=$(basename "$INCLUDE_PATH")
                            RENAMED_FILE=$(grep "^$MODULE_PATH/$BASE_NAME," "$RENAME_MAP" | cut -d',' -f2)
                            if [ -n "$RENAMED_FILE" ]; then
                                NEW_INCLUDE="$MODULE_PATH/$RENAMED_FILE"
                                LINE=$(printf '%s' "$LINE" | sed "s#\"$INCLUDE_PATH\"#\"$NEW_INCLUDE\"#")
                                echo "Updated include with path in $FILE: $INCLUDE_PATH -> $NEW_INCLUDE"
                            fi
                        else
                            # 不包含路径的 #include
                            RENAMED_FILE=$(grep "^$MODULE/$INCLUDE_PATH," "$RENAME_MAP" | cut -d',' -f2)
                            if [ -n "$RENAMED_FILE" ]; then
                                NEW_INCLUDE="$RENAMED_FILE"
                                LINE=$(printf '%s' "$LINE" | sed "s#\"$INCLUDE_PATH\"#\"$NEW_INCLUDE\"#")
                                echo "Updated local include in $FILE: $INCLUDE_PATH -> $NEW_INCLUDE"
                            fi
                        fi
                    fi
                    echo "$LINE" >> "$TEMP_FILE"
                done < "$FILE"
                mv "$TEMP_FILE" "$FILE"
            fi
        done
    fi
done

# 清理临时文件
rm "$RENAME_MAP"

echo "Header renaming and include updates complete!"


http://www.kler.cn/a/451883.html

相关文章:

  • GPUStack v0.4.1 单节点与多节点安装与部署指南 Docker PowerShell
  • 【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
  • 【软考高级】系统架构设计师复习笔记-精华版
  • leetcode hot100 将有序数组转化为二叉搜索树
  • golang 并发--goroutine(四)
  • 2. SQL窗口函数使用
  • 17_HTML5 Web 存储 --[HTML5 API 学习之旅]
  • CUDA11.4版本的Pytorch下载
  • Visual Studio Code历史版本下载
  • 2.1.2 select poll epoll reactor
  • 如何在openwrt中使用docker(命令行版)
  • leetcode22:括号问题
  • 《探寻神经网络RNN:从原理到应用的奇幻之旅》
  • 基于Java的在线教育系统
  • 《Swift 字面量》
  • 【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】
  • DENIAL-OF-SERVICE POISONING ATTACKS ON LARGE LANGUAGE MODELS
  • 5-Gin 静态文件服务 --[Gin 框架入门精讲与实战案例]
  • KAFKA 权威指南笔记(一)究竟应该配置多少个BROKER?
  • 【每日学点鸿蒙知识】上架流程、h5返回收拾拦截、两个枚举类型之间转换、hvigorw命令、绘制本地图片
  • 代码随想录算法训练营第一天 | 704. 二分查找、 27. 移除元素、977.有序数组的平方
  • Python知识图谱框架
  • 22【AUTOSAR自适应平台设计的概述01】杂项概念介绍
  • Hive其十,优化和数据倾斜
  • 要查询 `user` 表中 `we_chat_open_id` 列不为空的用户数量
  • 多边形内角问题@三角形的基本性质@平面镶嵌问题