单行命令根据图片名称创建空的txt文件 - Sat, Feb 14, 2026
ubuntu单行命令根据图片名称创建空的txt文件
ubuntu单行命令根据图片名称创建空的txt文件
基本用法
# 当前目录下处理常见图片格式
for img in *.JPG; do [[ -f "$img" ]] && touch "${img%.*}.txt"; done
扩展用法
处理多种图片格式
# 处理多种图片格式
for img in *.jpg *.jpeg *.png *.JPG *.JPEG *.PNG; do
[[ -f "$img" ]] && touch "${img%.*}.txt"
done
递归处理子目录
# 递归处理所有JPG文件
find . -name "*.jpg" -type f | while read img; do
touch "${img%.*}.txt"
done
批量创建同名文件夹
# 创建同名文件夹
for img in *.jpg; do
[[ -f "$img" ]] && mkdir -p "${img%.*}"
done
写入默认内容
# 创建txt并写入内容
for img in *.jpg; do
[[ -f "$img" ]] && echo "# ${img%.*}" > "${img%.*}.txt"
done
实用脚本
完整脚本
#!/bin/bash
# create_txt_for_images.sh
# 支持的图片格式
FORMATS="jpg jpeg png gif bmp JPG JPEG PNG GIF BMP"
# 遍历所有格式
for fmt in $FORMATS; do
for img in *.$fmt; do
# 检查文件是否存在
if [[ -f "$img" ]]; then
# 获取文件名(不含扩展名)
name="${img%.*}"
# 创建txt文件
touch "${name}.txt"
echo "Created: ${name}.txt"
fi
done
done
带进度显示
#!/bin/bash
count=0
total=$(ls *.jpg 2>/dev/null | wc -l)
for img in *.jpg; do
[[ -f "$img" ]] && touch "${img%.*}.txt"
((count++))
echo "Progress: $count/$total"
done
echo "Done! Created $count txt files."
常见用例
AI标注数据准备
# 为图片创建标注文件
for img in *.jpg; do
[[ -f "$img" ]] && cat > "${img%.*}.txt" << EOF
# Image: $img
# Date: $(date +%Y-%m-%d)
# Labels:
EOF
done
批量重命名配套
# 先创建txt再重命名
for img in *.JPG; do
if [[ -f "$img" ]]; then
name="${img%.*}"
lowercase=$(echo "$name" | tr '[:upper:]' '[:lower:]')
touch "${lowercase}.txt"
mv "$img" "${lowercase}.jpg"
fi
done
最佳实践
- 先预览:使用
echo先预览要创建的文件名 - 备份重要数据:批量操作前备份
- 使用版本控制:对于重要项目使用git
- 测试小批量:先用少量文件测试脚本