我试图从大写的文件名中取出最后两个字母,并将它们以小写形式附加到文件名.我完成了命令:
ls | sed -e "s/.*\([A-Z][A-Z]\)$/\0\/\L\1\E/"
Run Code Online (Sandbox Code Playgroud)
实现这一点,在我的Ubuntu箱它工作得很好,但在我的Mac它简单地打印出一个0/LXXE/地方XX是从捕获正确的字母.
什么是Mac sed等价物\0,\L和\E?
我已经浏览过网络,有几个人注意到Mac OS X sed与Ubuntu sed有所不同,但是大多数线程都在讨论-i文件扩展名或空字符串的要求(以前曾让我失望).
anu*_*ava 23
OSX(BSD)的sed不支持的功能\L,\E等安装gnu sed使用此选项在Mac上:
brew install gnu-sed
Run Code Online (Sandbox Code Playgroud)
awk 替代方案:
ls | awk '{print $0 tolower(substr($0,length($0)-1,2))}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4334 次 |
| 最近记录: |