我需要帮助 我还需要原始文件名以及替换文件名 我的文件是:
bmb/eng/case.bmb
输出应该是这样的:
bmb/case.bmb
bmx/eng/case.bmx
我在这里使用的命令是
$ echo bmb/eng/case.bmb | sed -E 's/.*/& &/;:a;s/([^ ]* [^\n]*)(bm)b/\1\2x/;ta;s~/~&eng&~2'
bmb/eng/eng/case.bmb bmx/eng/case.bmx
我得到的输出:
bmb/eng/eng/case.bmb bmx/eng/case.bmx
答案1
使用该-e
选项运行多个 sed 表达式。全局替换BB和小轮车, s/bmb/bmx/g
.要插入英语子目录,替换第一个斜杠,例如s#/#/eng/#
.在第二个表达式中,我使用哈希字符来分隔表达式和替换,以便我可以只键入斜杠而无需反斜杠。
结果:
$ echo bmb/case.bmb | sed -e 's/bmb/bmx/g' -e 's#/#/eng/#'
bmx/eng/case.bmx
让我困惑的是:你的命令应该也有效。我只使用斜杠,而不是&
第二个表达式中的 ,但这只是为了可读性。哪里的菜单来自不清楚。也许缺少一些上下文?