Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Linux:找到一个匹配模式并用该匹配项重命名整个文件_Regex_Rename - Fatal编程技术网

Regex Linux:找到一个匹配模式并用该匹配项重命名整个文件

Regex Linux:找到一个匹配模式并用该匹配项重命名整个文件,regex,rename,Regex,Rename,我有数百个这样格式的id文件 106527-Sup, Perman .jpg 106528-Iron, man .jpg 106529-Bat, man .jpg 106530-Spider, man .jpg 我需要将它们重命名为 106527.jpg 106528.jpg 106529.jpg 106530.jpg 如何使用regex和rename命令执行此操作您可以使用基于perl的重命名: rename 's/^(\d+).*jpg$/$1\.jpg/' *.jpg ^匹

我有数百个这样格式的id文件

106527-Sup, Perman  .jpg
106528-Iron, man  .jpg
106529-Bat, man  .jpg
106530-Spider, man  .jpg
我需要将它们重命名为

106527.jpg
106528.jpg
106529.jpg
106530.jpg

如何使用regex和rename命令执行此操作

您可以使用基于perl的
重命名

rename 's/^(\d+).*jpg$/$1\.jpg/' *.jpg
  • ^
    匹配输入开头的位置
  • \d+
    匹配一个或多个数字
  • *
    匹配两者之间的所有内容
  • $
    匹配输入末尾的位置

第一组(
$1
)包含您要替换的数字。

谢谢,这是结果106527 106528 106529 106530它去掉了。jpg太棒了!非常感谢你!
rename-n's/^(\d+).*\.jpg$/$1/'*.jpg
对你有用吗?如果Maroun的答案对你有用,请接受它。