我是UNIX新手,我使用sed
命令替换文件中的模式。
文件内容为:
xyx.filename are in Filename
filename are in Filename and app.filename is in Filename
我想忽略字符串" .filename " (即字符串文件名以"。"开头)和替换 文件名字符串的其余部分(即文件名,文件名..等)到的 NEWNAME
sed命令中将使用什么正则表达式?
答案 0 :(得分:2)
您可以使用:
$ sed -r 's/(^|[^.])filename/\1newname/gi' file
xyx.filename are in newname
newname are in newname and app.filename is in newname
-r
用于仅使用( ... )
而不是\( ... \)
来抓取群组。(^|[^.])filename
会匹配文件开头的filename
或filename
之类的内容,而前面的任何字符都不是点.
。\1newname
它将newname
替换为catched值(filename
前面的值)。gi
执行替换g
,并i
进行案例处理。