使用终端 (OSX) 删除“?”基本名称末尾的字符
Using Terminal (OSX) to remove "?" character at end of basename
我有一个末尾带有未知字符的文件列表(显示为“?”)
我的目标是
- 删除基本名称中显示为 ? 的未知字符对于文件夹中的每个文件
这里是 directory/folder 文件所在的路径:
/Users/MyName/Documents/InfoNotParsed
文件夹中文件的名称如下:
TextInformation?.txt
TextInformation2?.txt
TextInformation3?.txt
这是我试图在终端中 运行 删除“?”的命令。在扩展名之前的基本名称末尾:
cd /Users/MyName/Documents/InfoNotParsed
for f in *; do mv — “$f” “$f//\?/}”; done
我卡在命令行说:
for dquote>
这是 shell 中的整个终端文本:
MyName@Name-MBP ~ % cd /Users/MyName/Documents/InfoNotParsed
MyName@Name-MBP InfoNotParsed % for f in *; do mv -- "$f" "${f//\?/}; done
for dquote>
有什么建议吗?
您正在尝试使用 ?
匹配 unknown 字符,但 ?
不存在,只是终端显示未知字符.
尝试列出您希望保留的内容并使用 tr
删除补语,例如:
for f in *.txt; do g=`echo -n "$f" | tr -C -d "-7"`; mv -- "$f" "$g"; done
这远非万无一失,但可能适用于您的特定情况。
我有一个末尾带有未知字符的文件列表(显示为“?”)
我的目标是
- 删除基本名称中显示为 ? 的未知字符对于文件夹中的每个文件
这里是 directory/folder 文件所在的路径:
/Users/MyName/Documents/InfoNotParsed
文件夹中文件的名称如下:
TextInformation?.txt
TextInformation2?.txt
TextInformation3?.txt
这是我试图在终端中 运行 删除“?”的命令。在扩展名之前的基本名称末尾:
cd /Users/MyName/Documents/InfoNotParsed
for f in *; do mv — “$f” “$f//\?/}”; done
我卡在命令行说:
for dquote>
这是 shell 中的整个终端文本:
MyName@Name-MBP ~ % cd /Users/MyName/Documents/InfoNotParsed
MyName@Name-MBP InfoNotParsed % for f in *; do mv -- "$f" "${f//\?/}; done
for dquote>
有什么建议吗?
您正在尝试使用 ?
匹配 unknown 字符,但 ?
不存在,只是终端显示未知字符.
尝试列出您希望保留的内容并使用 tr
删除补语,例如:
for f in *.txt; do g=`echo -n "$f" | tr -C -d "-7"`; mv -- "$f" "$g"; done
这远非万无一失,但可能适用于您的特定情况。