Latex文件中出现以下命令:
\en{some_string}
这是用于输入英文文本的自定义命令。 现在我希望在每个命令中删除周围环境,以便:
\en{some_string} ---> some_string.
如何使用bash或vim命令实现它?
答案 0 :(得分:4)
您可以使用sed
命令,如下所示:
sed --in-place=.bak 's/\\en{\([^}]*\)}/\1/g' your_file
这会在.bak扩展名下创建原始文件的备份。然后它将替换指定文件中的所有出现。
s/original/replace/g
用original
replace
的所有出现
\(...\)
捕获右侧应用的\1
之间的匹配[^}]*
匹配}
\\en{\([^}]*\)}
,因此完整的左侧与\en{some_string}
模式匹配,并存储{
和}
之间的\1
在右侧用作替代品。您也可以在vim
中使用完全相同的命令:
vim your_file
:%s/\\en{\([^}]*\)}/\1/g
此处:
切换到命令行模式,%
表示文件所有行的范围,其余部分相同。
答案 1 :(得分:0)
vim regex替换文件中的所有行:
:%s/^\\en{\([0-9a-zA-Z_]*\)}/\1/