내 문서에는 다음과 같은 측면이 있습니다.
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