linux命令删除或替换空格和特殊字符

时间:2021-04-02 04:00:38

标签: linux ubuntu

我可以让 rename ' ' _ * 删除第一个空格,但是当我尝试类似 rename 's/ /_/g' * 时什么也没有发生。理想情况下,我想要一个可以重命名文件并删除所有空格和特殊字符以只留下字母和数字的命令。

1 个答案:

答案 0 :(得分:1)

这可能是一行,只提取字母和数字

echo "file with spaces here.txt" | sed -e 's/[^0-9a-zA-Z ]/ /g' | tr ' ' '_'

对于目录中的所有文件,例如

for f in *;
do
   newName=$( echo "$f" | sed -e 's/[^0-9a-zA-Z ]/ /g' | tr ' ' '_' );
   mv "$f" "$newName";
done