0

我有一组键/值对,其中列出了使用完全限定名称的可执行文件,如下所示:

  ["exec"] = "/share/home/00288/tg455591/NAMD_2.8b3/NAMD_2.8b3_Linux-x86_64-MVAPICH-Intel-Ranger/namd2",

但是,我想取出目录位置,只打印可执行文件,如下所示:

  ["exec"] = "namd2",

如何构造正则表达式来进行此更改?请记住,文件中的所有可执行文件都是不同的,但它们具有相似的格式。该文件的大小约为 6000 行。提前致谢。

4

3 回答 3

1

试试这个找到:

(?<="exec"] = ")[^"]*?/([^/"]+)(?=")

这要替换:

\1

(或 1 美元)

于 2013-04-16T03:19:00.763 回答
1

这个正则表达式成功了:

(?<=\["exec"\] = ").+?(?=[^/]+?(?:\.\w+)?")

用。。。来代替:

\1\2
于 2013-04-16T03:13:52.540 回答
0

如果我正确理解了这个问题,这个sed命令就可以解决问题:

sed 's|= .*/|= "|'
于 2013-04-16T03:03:47.853 回答