Regex этот формат вопроса в ЛАТЕКС

ArchWiki имеет хороший ответ на это:

activeWinLine=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)")
activeWinId=${activeWinLine:40}

Используя sed можно сделать это в одной строке, которая является, вероятно, самым читаемым способом сделать это:

activeWin="$(xprop -root | sed -n 's/^_NET_ACTIVE_WINDOW(WINDOW): window id # //p')"

Отметьте это xdotool пропускал в моем Debian минимальный X11 в то время как xprop был включен (аналогично sed конечно).

Если Вы не хотите разветвляться sed ни grep можно сделать текстовое преобразование это полностью в bash, который, возможно, безопасен в случае, если вывод xprop изменения немного:

activeWin="$(xprop -root)"
activeWin="${activeWin#*_NET_ACTIVE_WINDOW(WINDOW):}'
activeWin="${activeWin%%?_NET_*}'
activeWin="${activeWin##* }'

Так или иначе это - все еще странный способ заархивировать такую простую задачу.

4
05.06.2014, 17:16
1 ответ

Есть один способ. Он предполагает, что вопросы разделены последовательными новыми строками (\n\n).

$ perl -000pe 's/\n/\n\\begin{enumerate}\n/; 
                s/\n\d./\n\\item /g; s/$/\\end{enumerate}\n/' file 
l. Lorem ipsun la la la?
\begin{enumerate}
\item  Sopor
\item  Stupor
\item  Torpor
\end{enumerate}

2. A patient has Lorem?
\begin{enumerate}
\item  Sopor
\item  Stupor
\item  Somnolentia 
\item  La
\item  Coma\end{enumerate}

Пояснение

  • -000 : активируйте режим параграфа Perl , это приведет к тому, что "строки" будут определены двумя последовательными новыми строками (\n\n), так что каждый Ваш вопрос будет рассматриваться как одна строка.
  • -pne : прочитайте каждую строку входного файла и распечатайте ее (-p) после применения скрипта, переданного как -e.
  • s/\n/\n\\begin{enumerate}\n/ : замените 1-ю новую строку этой строки (вопроса) на \begin{enumerate}\n.
  • s/\n\d. /\n\\item /g : замените любое (g) число, которое появляется сразу после символа новой строки, на символ новой строки и \item с последующим пробелом.
  • s/$/\\end{enumerate}\n/' : замените конец записи ($) на \end{enumerate} и новую строку.
3
27.01.2020, 20:58

Теги

Похожие вопросы