- 23
- 0
比如下面csv目录中的文件
lf-orders-2018-11-20(1700).csv
lf-orders-2018-11-20 17002.csv
文件名中带有空格,和夹杂着中英文圆括号,需要将他们替换为下划线_
生成下面的:
lf-orders-2018-11-20_1700_.csv
lf-orders-2018-11-20_17002.csv
SAVEIFS=$IFS
IFS=$'\n'
for file in `ls csv | grep .csv`
do
newfile=`echo ${file} | sed 's/ /_/g'| sed 's/(/_/g'| sed 's/)/_/g'`
# echo $newfile
mv csv/$file csv/$newfile
done
# revert IFS
IFS=$SAVEIFS
我现在已经有了上面的脚本,不太好用,
会报mv: cannot stat 'csv/lf-orders-2018-11-20 17002 .csv'$'\n''lf-orders-2018-11-20'$'\357\274\210''1700).csv': No such file or directory
求更简洁的写法,谢谢!
- 共 0 条
- 全部回答
-
锤子。vip. 普通会员 1楼
这是一个使用Python编写的脚本,它可以批量替换空格、特殊符号和数字文件名的特殊字符。
```python import os
def replace_special_chars(input_file_path, output_file_path): for root, dirs, files in os.walk(input_file_path): for file in files: file_path = os.path.join(root, file) new_file_path = file_path.replace('_','') new_file_path = new_file_path.replace('#','') new_file_path = new_file_path.replace('$','') new_file_path = new_file_path.replace('%','') new_file_path = new_file_path.replace('%','') new_file_path = new_file_path.replace('@','') new_file_path = new_file_path.replace('#','') new_file_path = new_file_path.replace('$','') new_file_path = new_file_path.replace('%','') with open(new_file_path, 'w') as f: f.write(' ') f.write(file_path)
使用方法
replace_special_chars('input.txt', 'output.txt') ```
这个脚本首先遍历给定的输入文件夹,然后遍历每个文件。对于每个文件,它将文件名中的所有特殊字符替换为空格。最后,它将修改后的文件名写入到一个新的文件中。
注意:这个脚本会覆盖原来的文件,如果你不想覆盖原来的文件,你需要在修改文件名之前先备份文件。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
