我的文档有以下几个方面:
Text1
\begin{code}
code1
\end{code}
Text2
\begin{code}
-- comment1
code1A
\end{code}
Text3
\begin{code}
-- comment2
code1B
\end{code}
Text4
\begin{code}
codeB
\end{code}
Text 5
我正在寻找的输出是这样的:
code1
-- comment1
code1A
-- comment2
code1B
codeB
答案1
笔记:对问题的编辑使该解决方案变得过时。
由于您只想过滤输出的特定行,因此grep
可以完成这项工作。
$ grep -v -e "T[0-9]" -e '^\\begin{code}$' -e '^\\end{code}$' file.txt
code1
-- comment1
code1A
-- comment2
code1B
codeB
答案2
发布所需的输出而不指定要获取的规则/逻辑并不能真正帮助解决您的问题。有人可以只回显/打印输出而不涉及输入。假设您想要介于两者之间\begin{code}
并\end{code}
排除其中任何一个的线条,请尝试
sed -n '/\\begin/,/\\end/ {/{code}/!p}' file
code1
-- comment1
code1A
-- comment2
code1B
codeB
如果需要空行,请附加/^ *$/p
到sed
脚本中。
编辑:就像这样:
$ sed -n '/\\begin/,/\\end/ {/{code}/!p}; /^ *$/p' file
code1
-- comment1
code1A
-- comment2
code1B
codeB