Prepend file names with plus sign

假如想象 提交于 2019-12-03 14:39:47

Try this one:

sed 's#\(,\)\([^.,]\+\.\(jpg\|png\|gif\)\)#\1+\2#g' infile

Explanation:

s#...#...#g             # Substitute command. '#' is separator and 'g' is to apply it many times for 
                        # each line.
\(,\)                   # Match a comma, and save it as '\1'
[^.,]\+\.               # Match any characters until a '.' or ',' found.
\(jpg\|png\|gif\)       # Match extension.
\1+\2                   # Replace with: Comma, plus sign and the image name.
's/,\([a-zA-Z0-9\/_]\+\)\(\.jpg\|\.png\|\.gif\)/,+\1\2/g'
  1. The / that you want to match needed escaping.
  2. The | needed escaping.

So many escapes required with sed.

This might work for you:

sed 's/\(^\|,\)\([^,.]*\.\(jpg\|png\|gif\)\)\>/\1+\2/g' file
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!