![使用正则表达式转换带有“tr”的文件名不起作用](https://linux22.com/image/222676/%E4%BD%BF%E7%94%A8%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%BD%AC%E6%8D%A2%E5%B8%A6%E6%9C%89%E2%80%9Ctr%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我想使用该tr
命令将某些内容重命名filename.ext
为someName.ext
.
为了做到这一点我已经尝试过
echo "filename.ext" | tr -c ".a-z" "someName"`
来替换补充文件扩展名的( -c
)(指定为句点,后跟小写字母)与新的基本名称。
然而,它不起作用 -tr
没有将其识别为句点的补充,后跟小写字母以被其他东西替换。
我在这里缺少什么?
答案1
该tr
命令不使用正则表达式。它使用字符范围和列表,并进行一对一的字符替换或删除。
例如,tr A-Z a-z
将大写字母转换为小写字母。
如果您想用正则表达式替换,请使用sed
tr 代替。