0

假设我有一个格式的图像img_12-31-06_99.jpg

现在我正在尝试将 移到'.jpg'表达式的前面以获得

`.jpgimg_12-31-06_99`

所以我尝试将表达式的第一部分与img_[0-9]*-[0-9]*-[0-9]*_[0-9]*

然后.jpg匹配余数。我曾经\2将第二部分移到前面,并将\1捕获的第一个表达式移到最后。

echo img_12-31-06_99.jpg | sed 's/\(img_[0-9]*-[0-9]*-[0-9]*_[0-9]*\) \(.jpg\)/\2 \1/' 

现在这将返回我原来的表达式:

img_12-31-06_99.jpg

谁能给我解释一下?

4

1 回答 1

1

您很接近,您在正则表达式和替换中都有问题空间,以下应该可以工作:

sed 's/\(img_[0-9]*-[0-9]*-[0-9]*_[0-9]*\)\(.jpg\)/\2\1/'

例如:

$ echo img_12-31-06_99.jpg | sed 's/\(img_[0-9]*-[0-9]*-[0-9]*_[0-9]*\)\(.jpg\)/\2\1/'
.jpgimg_12-31-06_99
于 2013-04-12T19:01:58.157 回答