我正在重命名文件和目录。 基本上,我想要做的就是去掉空格,并用下划线代替,最后做成小写。 我可以一次执行一个命令: $ 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
rename 's/ +././; y/AZ /a-z_/'
或者,结合find :
find /temp/ -depth -name "* *" -exec rename 's/ +././; y/AZ /a-z_/' {} +
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] 举报,一经查实,本站将立刻删除。