Macos 从目录中的文件中删除后缀的一行程序
在OSX 10.8上,如何通过从名称中删除一定数量的字符来重命名当前目录中的所有文件?例如:Macos 从目录中的文件中删除后缀的一行程序,macos,bash,command-line,Macos,Bash,Command Line,在OSX 10.8上,如何通过从名称中删除一定数量的字符来重命名当前目录中的所有文件?例如: my_img_1@2x.png to become my_img_1.png 因此,只有@2x部分将被删除。执行此操作的确切方式取决于您的文件-例如,它们都是PNG文件吗?是否要从它们中删除@2x?下面是一个循环,它将从当前目录中的所有文件中删除文件扩展名前的3个字符: 这有效地使用了构造${var%pattern}意味着“获取$var并从其末尾删除与[pattern]匹配的最短字符串”。因此,在本
my_img_1@2x.png to become my_img_1.png
因此,只有
@2x
部分将被删除。执行此操作的确切方式取决于您的文件-例如,它们都是PNG文件吗?是否要从它们中删除@2x
?下面是一个循环,它将从当前目录中的所有文件中删除文件扩展名前的3个字符:
这有效地使用了构造${var%pattern}
意味着“获取$var
并从其末尾删除与[pattern]匹配的最短字符串”。因此,在本例中,${f%@*}
表示“从$f
中删除最后一个@
及其后面的任何内容”。然后我们附加.png
以替换作为该操作一部分而删除的文件扩展名
$f = filename@2x.png
${f%@*} = filename
${f%@*}.png = filename.png
具体方法取决于您的文件-例如,它们都是PNG文件吗?是否要从它们中删除
@2x
?下面是一个循环,它将从当前目录中的所有文件中删除文件扩展名前的3个字符:
这有效地使用了构造${var%pattern}
意味着“获取$var
并从其末尾删除与[pattern]匹配的最短字符串”。因此,在本例中,${f%@*}
表示“从$f
中删除最后一个@
及其后面的任何内容”。然后我们附加.png
以替换作为该操作一部分而删除的文件扩展名
$f = filename@2x.png
${f%@*} = filename
${f%@*}.png = filename.png
具体方法取决于您的文件-例如,它们都是PNG文件吗?是否要从它们中删除
@2x
?下面是一个循环,它将从当前目录中的所有文件中删除文件扩展名前的3个字符:
这有效地使用了构造${var%pattern}
意味着“获取$var
并从其末尾删除与[pattern]匹配的最短字符串”。因此,在本例中,${f%@*}
表示“从$f
中删除最后一个@
及其后面的任何内容”。然后我们附加.png
以替换作为该操作一部分而删除的文件扩展名
$f = filename@2x.png
${f%@*} = filename
${f%@*}.png = filename.png
具体方法取决于您的文件-例如,它们都是PNG文件吗?是否要从它们中删除
@2x
?下面是一个循环,它将从当前目录中的所有文件中删除文件扩展名前的3个字符:
这有效地使用了构造${var%pattern}
意味着“获取$var
并从其末尾删除与[pattern]匹配的最短字符串”。因此,在本例中,${f%@*}
表示“从$f
中删除最后一个@
及其后面的任何内容”。然后我们附加.png
以替换作为该操作一部分而删除的文件扩展名
$f = filename@2x.png
${f%@*} = filename
${f%@*}.png = filename.png
解释要删除的零件的规则。解释要删除的零件的规则。解释要删除的零件的规则。解释要删除的零件的规则。是的,它们都是PNG。我想从指定文件夹中的文件中删除所有
@2x
。因此最好不要指定每个文件。这只是一个示例,在*中为f运行的命令将对当前目录中的所有文件运行。我将添加一个额外的命令,你可以使用。编辑答案,希望对你有所帮助。谷歌搜索“bash参数扩展”可能更具启发性。啊,好吧,所以@*只是通配符。我以为这是某种正则表达式。回答得很好,谢谢!是的,它们都是PNG。我想从指定文件夹中的文件中删除所有@2x
。因此最好不要指定每个文件。这只是一个示例,在*
中为f运行的命令将对当前目录中的所有文件运行。我将添加一个额外的命令,你可以使用。编辑答案,希望对你有所帮助。谷歌搜索“bash参数扩展”可能更具启发性。啊,好吧,所以@*只是通配符。我以为这是某种正则表达式。回答得很好,谢谢!是的,它们都是PNG。我想从指定文件夹中的文件中删除所有@2x
。因此最好不要指定每个文件。这只是一个示例,在*
中为f运行的命令将对当前目录中的所有文件运行。我将添加一个额外的命令,你可以使用。编辑答案,希望对你有所帮助。谷歌搜索“bash参数扩展”可能更具启发性。啊,好吧,所以@*只是通配符。我以为这是某种正则表达式。回答得很好,谢谢!是的,它们都是PNG。我想从指定文件夹中的文件中删除所有@2x
。因此最好不要指定每个文件。这只是一个示例,在*
中为f运行的命令将对当前目录中的所有文件运行。我将添加一个额外的命令,你可以使用。编辑答案,希望对你有所帮助。谷歌搜索“bash参数扩展”可能更具启发性。啊,好吧,所以@*只是通配符。我以为这是某种正则表达式。回答得很好,谢谢!