我有一个class.txt文件,其中包含多个.class文件条目及其各自的路径,我想重命名.class文件名如上所述
要求:
这
modules/abc_1.1.3/abc.domain.ear!/APP-INF/lib/adj.jar!/ba/sr/ApplicationModule.class
为:
modules/abc_1.1.3/abc.domain.ear!/APP-INF/lib/adj.jar!/ba/sr/[ApplicationModule\$.*\.class]
我尝试使用sed命令,但没有获得所需的输出,如下所示
cat class.txt | sed "s/.class/\\\\$.*\\\.class]/g"
modules/abc_1.1.3/abc.domain.ear!/APP-INF/lib/adj.jar!/ba/sr/ApplicationModule\$.*\.class]
请帮助,谢谢!
答案 0 :(得分:1)
您必须捕获文件名:
sed 's/\([^/]*\).class/[\1\\$.*\\.class]/g'
答案 1 :(得分:0)
您需要使用捕获组才能在两个单独的组中捕获文件名及其扩展名。
$ sed 's~\([^./]*\)\.\([^/.]*\)$~[\1\\\$.*\\.\2]~' file
modules/abc_1.1.3/abc.domain.ear!/APP-INF/lib/adj.jar!/ba/sr/[ApplicationModule\$.*\.class]