微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用下划线replace空格,并使小写字母 – 文件名

我正在重命名文件和目录。 基本上,我想要做的就是去掉空格,并用下划线代替,最后做成小写。 我可以一次执行一个命令: $ rename "s/ /_/g" * ,然后是小写命令。 但是我试图完成这一切在一行。 下面我所能做到的就是去掉空格并用_replace,但不会变成小写。 怎么来的?

find /temp/ -depth -name "* *" -execdir rename 's/ /_/g; s,?; '

原始文件名称

test FILE .txt

结果:(如果最后有一个空格,拿出)

test_file.txt

用户input运行crontab

调用shell脚本后返回主C程序

有效地超时一个命令,并捕获输出到bash脚本中的variables

计数器循环pipe道grep似乎意外地随机

Bash脚本继续关键字不断开循环迭代

bash – 如何匹配在循环中使用的文件

如何在bash中逐行逐行读取文本文件

如何根据给定数量的字母显示单词?

采购Anaconda激活脚本与将Anaconda bin目录添加到PATH

修改ls输出以在目录前面显示

rename 's/ +././; y/AZ /a-z_/'

或者,结合find :

find /temp/ -depth -name "* *" -exec rename 's/ +././; y/AZ /a-z_/' {} +

要仅定位文件,而不是目录,请添加-type f :

find /temp/ -depth -name "* *" -type f -exec rename 's/ +././; y/AZ /a-z_/' {} +

缩短名字

是否有可能重新命名文件的原始文件的最后三个字符,例如从大Dog.txt到dog.txt?

是。 使用这个rename命令:

rename 's/ +././; y/AZ /a-z_/; s/[^.]*([^.]{3})/$1/'

试试这一行:

echo "test FILE .txt" | tr AZ az | tr -s ' ' | tr ' ' ' '| sed 's/ ././'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐