在BiBTeX文件中将关键字转换为标记(反之亦然)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在BiBTeX文件中将关键字转换为标记(反之亦然)相关的知识,希望对你有一定的参考价值。

Convert (comma separated) keywords to (space separated) tags in BibTeX files for use in social bibliography sites (bibsonomy.org, citeulike.org)
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use utf8;
  4. use encoding "utf8";
  5. use Getopt::Std;
  6. use Text::BibTeX;
  7. #
  8. getopt();
  9. our $opt_r;
  10. die "Usage : $0 [-r] source-file dest-file " if !defined( $ARGV[1] ) ;
  11. #
  12. my $oldfile = shift;
  13. open BIBFILE1, '<:utf8', $oldfile or die "Problem opening $oldfile ";
  14. my $newfile = shift;
  15. open BIBFILE2, '>:utf8', $newfile or die "Problem opening $newfile ";
  16. #
  17. while (my $entry = new Text::BibTeX::Entry $oldfile, *BIBFILE1)
  18. {
  19. next if !$entry->parse_ok;
  20. my $keywords = $entry->get ('keywords');
  21. next if !defined($keywords);
  22. # my $title = $entry->get ('title');
  23. # print "$title: " if (defined($title));
  24. # print "$keywords --> ";
  25. ##
  26. my $tags;
  27. if (!$opt_r) {
  28. my @list = split (",", $keywords);
  29. foreach (@list) {s/^ //g; s/ $//g; s/ /_/g};
  30. $tags = join(' ', @list);
  31. }
  32. else {
  33. # print "reverse ";
  34. my @list = split (" ", $keywords);
  35. foreach (@list) {s/_/ /g};
  36. $tags = join(', ', @list);
  37. }
  38. # print "/", $tags, "/ ";
  39. ##
  40. $entry->set ('keywords', $tags);
  41. $entry->print (*BIBFILE2);
  42. }

以上是关于在BiBTeX文件中将关键字转换为标记(反之亦然)的主要内容,如果未能解决你的问题,请参考以下文章

如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)

如何在 C++ 中将数字转换为字符串,反之亦然

在python 3中将表情符号转换为Unicode,反之亦然

使用 .NET 将 WAV 转换为 WMA

如何在 Qt 中将 QVariant 转换为 QString,反之亦然?

如何在 C# 中将 Xml 转换为 Json,反之亦然