печать повторяющихся частей файла с помощью awk - PullRequest
0 голосов
/ 31 октября 2019

Я хотел бы просмотреть этот файл:

\chapter{CHAPTER}

TEXT   
\e
h454
\e    
\e
454
\e    
\begin{figure}
\NOTE{figure}
\centering
\includegraphics[width=0.49\textwidth]{f.pdf}
\caption{\NOTEB{The concept}}
\label{fig}
\end{figure}

SOME TEXT    
\e
454
\e    
SOME TEXT

\begin{figure}
\NOTE{figure}
\centering
\includegraphics[width=0.49\textwidth]{f.pdf}
\caption{\NOTEB{The concept}}
\label{fig}
\end{figure}

\chapter{CHAPTER}

SOME TEXT

и распечатать некоторые части:

awk '/\\begin\{figure\}/,/\\end\{figure\}/' file.tex
awk '/\\e/,/\\e/' file.tex
awk '/\chapter/' file.tex

, но все в одном файле и в порядке, как во входном файле. Итак, желаемый вывод (пустая строка не имеет значения):

\chapter{CHAPTER}  
\e
h454
\e
\e
454
\e
\begin{figure}
\NOTE{figure}
\centering
\includegraphics[width=0.49\textwidth]{f.pdf}
\caption{\NOTEB{The concept}}
\label{fig}
\end{figure}    
\e
454
\e    
\begin{figure}
\NOTE{figure}
\centering
\includegraphics[width=0.49\textwidth]{f.pdf}
\caption{\NOTEB{The concept}}
\label{fig}
\end{figure}
\chapter{CHAPTER}

Как соединить эти команды и сделать так, чтобы они следовали порядку входного файла?

1 Ответ

1 голос
/ 31 октября 2019

Не могли бы вы попробовать следующее.

awk '
/\\label/{
  next
}
/\\begin\{figure\}|\\beq/{
  found=1
}
found;
/\\end\{figure\}|\\eeq/{
  found=""
}
/chapter/
' Input_file

Поскольку я написал это на своей ячейке, я не проверял его, пожалуйста, не стесняйтесь комментировать любые предложения.

...