我想在bash脚本中的一行上执行以下操作:
情况1
"text1=text2 some text /orig/path/s/abc.la more text"
要求的结果:
"text1=text2 some text /replacement/path/t/abc.la more text"
案例2
"text1=text2 some text /orig/path/s1/abc.la more /orig/path/s1/xzy.la text"
要求的结果:
"text1=text2 some text /replacement/path/abc.la more /replacement/path/xzy.la text"
所以当它与给定的扩展名匹配时,我希望替换行中文件名的所有实例的路径(在本例中为“* .la”)
提前致谢。
目标始终是最简单的模式 - 因为您所需的替换似乎只需要“记住”文件名本身并且不对原始路径做任何事情,您可以使用非贪婪量化的通配符.*?
来吃掉所有东西在第一个和最后一个/
之间,使模式非常简单:
模式:/.*?/(\w+).la
替换:/mypath/here/$1.la