为了账号安全,请及时绑定邮箱和手机立即绑定

更改 bash 中具有特殊字符的文件名

更改 bash 中具有特殊字符的文件名

慕工程0101907 2024-01-04 10:04:44
我们正在运行一个 Ubuntu 服务器,它会自动从客户处通过 FTP 传输文件,最近这些文件现在显示为...“file.csv;” '文件2.csv;我一直在尝试制定 bash 和 Python 解决方案,但没有成功。我只是想去掉单引号和分号并保留剩下的内容。这不一定是 bash,它可以是 python 甚至 perl。我在下面添加了不起作用的代码。我什至似乎无法获得目录列表。有人能指出我正确的方向吗?for i in \'*     do    echo $idone注意:更正了代码以删除错误的 $echo'
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

find ... -exec rename像这样使用:


find . -name "*[;']*" -exec rename "tr/';//d" {} \;

例子:


# Create example input files:

$ touch "f'o''o'" "b;a;;r;" "b';a;'';z;'"


# Build the command by first confirming that `find` finds them all:

$ find . -name "*[;']*"                            

./f'o''o'

./b';a;'';z;'

./b;a;;r;


# Find and rename them, one by one:

$ find . -name "*[;']*" -exec rename "tr/';//d" {} \;


# Confirm that rename worked as expected:

$ ls -1rt | tail -n 3                                

foo

bar

baz

您还可以使用 进行批量重命名以提高速度xargs,例如


find ... -print0 | xargs -0 ...

但就您而言,我认为逐个重命名文件已经足够快了。


命令行实用程序rename有多种形式。他们中的大多数人应该为这项任务而努力。我使用renameAristotle Pagaltzis 的 1.601 版本。要安装rename,只需下载其 Perl 脚本并将其放入$PATH. 或者rename使用安装conda,如下所示:


conda install rename


查看完整回答
反对 回复 2024-01-04
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

您可以从尝试这个 pyhon 3 脚本开始。不过我只在 Windows 中测试过。


import os


folder = ""

for root, dirs, files in os.walk(folder, topdown=False):

    for fn in files:

        path_to_file = os.path.join(root, fn)

        if "'" in fn or ";" in fn:

            print('Removing special characters from file: ' + fn)

            new_name = fn.replace("'", '').replace(";", '') 

            os.rename(path_to_file, os.path.join(root, new_name))


查看完整回答
反对 回复 2024-01-04
?
慕容708150

TA贡献1831条经验 获得超4个赞

import os

filesInDirectory = os.listdir(Path)


for filename in filesInDirectory:

    if "'" in filename:

        filename.replace("'", "")

    elif ";" in filename:

        filename.replace(";", "") 

    elif ("'" and ";") in filename:

        filename.replace("'", "")

        filename.replace(";", "")

使用Python


查看完整回答
反对 回复 2024-01-04
  • 3 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信