gpt4 book ai didi

awk - 附加文本 block 的副本

转载 作者:行者123 更新时间:2023-12-04 08:04:40 25 4
gpt4 key购买 nike

我正在处理 LaTeX beamer我想在每个演示文稿下方添加注释部分 \item简单地复制其文本的标题。例如我有

\begin{frame}{Frame Title}
\begin{itemize}[<+->]
\item Einstein was a clever man.
\item My favorite equation is,
\begin{equation}
E = m c^2.
\end{equation} where
\begin{enumerate}
\item $m$ is the mass,
\item $c$ the velocity of light and,
\item $E$ is the energy.
\end{enumerate}
\end{itemize}
\end{frame}
我想要
\begin{frame}{Frame Title}
\begin{itemize}[<+->]
\item Einstein was a clever man.
\note<.>[item]{
Einstein was a clever man.
}
\item My favorite equation is,
\begin{equation}
E = m c^2.
\end{equation} where
\begin{enumerate}
\item $m$ is the mass,
\item $c$ the velocity of light and,
\item $E$ is the energy.
\end{enumerate}

\note<.>[item] {
My favorite equation is,
\begin{equation}
E = m c^2.
\end{equation where
\begin{enumerate}
\item $m$ is the mass,
\item $c$ the velocity of light and,
\item $E$ is the energy.
\end{enumerate}
}
\end{itemize}
\end{frame}
我如何在 vim 中执行此操作,或使用命令行工具,如 awksed ?
通过 vim我可以复制并附加以模式 \item 开头的隔离行通过
:g/^\\item/ copy . | s//\\note\{item\}<.>\{/g
但我无法捕获属于每个顶级的整个块 \item .

最佳答案

这可能对你有用(GNU sed):

sed -E '/^\\begin\{itemize\}/{:a;n;/^\\end\{itemize\}/bb
/^( {4}|\t)\\item/{
:b;x;s/^(\s*)\\item(.*)/\1\\note<.*>[item]{\n\1\1\2\n\1}/p;x;h;ba}
H;ba}' file
专注于 \begin{itemize}之间的线和 \end{itemize}复制每个 \item并将副本附加到每个 \item节,替换 \item所需的命令 \note命令。
注意解决方案取决于缩进 \item 的空格命令,当前缩进设置为 4 个空格,但可以使用制表符(请参阅第二行开头的正则表达式)。

关于awk - 附加文本 block 的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66277594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com