各エントリが一般的な構造を持つ多くのエントリを持つ大きなbibtexファイルがあります
@ARTICLE{AuthorYear,
item = {...},
item = {...},
item = {...},
etc
}
(ARTICLE
例によっては別の単語になる場合がありますBOOK
)
私がやりたいのは、与えられたAuthorYearでエントリを抽出して新しい.bibファイルに入れる簡単なスクリプト(できればシェルスクリプト)を書くことです。
AuthorYearによるエントリの最初の文と最後の1回のクローズ}
で認識でき、おそらくsed
エントリの抽出に使用できると想像できますが、正確にこれを行う方法がわかりません。誰かが私にこれをどのように達成するかを教えてもらえますか?
それはおそらく次のようなものでなければなりません
sed -n "/AuthorYear/,/\}/p" file.bib
しかし}
、エントリの最初の項目が閉じているため、この出力は停止します。
@ARTICLE{AuthorYear,
item = {...},
したがって、これが}
行の唯一の文字であるかどうかを認識し、これが当てはまる場合にのみ「sed」で読み取りを停止する必要があります。
sed
はまったく必要ありません。それが最も簡単なオプションだと思いました。私は少し異なるコードを見つけました。sed -n "/AuthorYear/, /^ *\}/p"
それは}
、スペースがある場合は閉じたりスペースを修正したりすることを含め、私が望んでいるとおりに機能するようです
sed -n "/AuthorYear/,/\}$/p"
。$
記号に注意してください。}
ビビテムの結末を出力しないことを除いて、それはうまく働きます。ところで、の使用はsed
必要ですか?