我要做一个sed线(也使用Linux管道)来改变文件扩展名,所以我可以做某种mv *.1stextension *.2ndextension
类似mv *.txt *.c
.问题是我不能使用批处理或for循环,所以我必须使用管道和sed命令来完成所有操作.
你可以使用字符串操作
filename="file.ext1"
mv "${filename}" "${filename/%ext1/ext2}"
Run Code Online (Sandbox Code Playgroud)
或者,如果您的系统支持,您可以使用rename
.
更新
你也可以这样做
mv ${filename}{ext1,ext2}
Run Code Online (Sandbox Code Playgroud)
这被称为大括号扩展
sed用于操作文件的内容,而不是文件名本身.我的建议:
rename 's/\.ext/\.newext/' ./*.ext
Run Code Online (Sandbox Code Playgroud)
或者,这个现有的问题应该有所帮助.
归档时间: |
|
查看次数: |
13883 次 |
最近记录: |