我發現了許多與通過 shell 腳本在兩個模式之間列印線相關的示例。但是,我想出了一個基于給定輸入數字在塊之間列印行的情況。因此,這基本上是一個包含 100 多個問題的tex檔案。這是我的示例輸入檔案:
StartQuestion # First Question Block
\item This is First Question.
A) Answer-1
B) Answer-2
C) Answer-3
D) Answer-4
EndQuestion
StartQuestion # Second Question Block
\item This is Second Question.
A) Answer-1
B) Answer-2
C) Answer-3
D) Answer-4
EndQuestion
StartQuestion # Third Question Block
\item This is Third Question.
A) Answer-1
B) Answer-2
C) Answer-3
D) Answer-4
EndQuestion
StartQuestion # Fourth Question Block
\item This is Fourth Question.
A) Answer-1
B) Answer-2
C) Answer-3
D) Answer-4
EndQuestion
StartQuestion # Fifth Question Block
\item Why are we studying Linear Momentum?
EndQuestion
..... and so on.
所以每個塊都以StartQuestion開始,以EndQuestion標記結束。我能夠使用sed獲得塊之間的所有問題。我覺得這對我的情況來說更通用。
但是,如果用戶要求僅列印問題 3、4 和 32,我如何使用 bash 提取塊 3、4 和 32 之間的行?有人可以支持我嗎?
uj5u.com熱心網友回復:
你可以awk改用。
當每個塊開始時增加一個計數器 - 然后在塊內列印之前進行測驗。
$ awk '/StartQuestion/{ n } /StartQuestion/,/EndQuestion/{ if (n == 1 || n == 3) print }' questions.txt
StartQuestion # First Question Block
\item This is First Question.
A) Answer-1
B) Answer-2
C) Answer-3
D) Answer-4
EndQuestion
StartQuestion # Third Question Block
\item This is Third Question.
A) Answer-1
B) Answer-2
C) Answer-3
D) Answer-4
EndQuestion
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/439449.html
下一篇:通過變數列印到標準輸出
