各エントリが一般的な構造を持つ多くのエントリを持つ大きな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必要ですか?