Игорь Пашев -

Mar. 9th, 2009

06:03 pm

Previous Entry Add to Memories Tell A Friend Next Entry

Транслитерация авторов в бибтехе с русского на английский:

cat papers.bib.en | awk '/^AUTHOR/ {<--#$%^&**-->; print}; !/AUTHOR/ {print}'

Бибтех выглядит примерно так:
@ARTICLE {mat_par:1982_ufn,
LANGUAGE="english",
AUTHOR="Matveev, V. I. and Parilis, E. S.",
TITLE="Встряска при электронных переходах в атомах",
JOURNAL=УФН,
YEAR=1982,
VOLUME=138,
NUMBER=4,
PAGES="573-602"
}

где <--#$%^&**-->:
gsub("Й", "Y", $0);
gsub("Ц", "C", $0);
gsub("У", "U", $0);
gsub("К", "K", $0);
gsub("Е", "E", $0);
gsub("Ё", "YO", $0);
gsub("Н", "N", $0);
gsub("Г", "G", $0);
gsub("Ш", "SH", $0);
gsub("Щ", "SHCH", $0);
gsub("З", "Z", $0);
gsub("Х", "KH", $0);
gsub("Ъ", "", $0);
gsub("Ф", "F", $0);
gsub("Ы", "W", $0);
gsub("В", "V", $0);
gsub("А", "A", $0);
gsub("П", "P", $0);
gsub("Р", "R", $0);
gsub("О", "O", $0);
gsub("Л", "L", $0);
gsub("Д", "D", $0);
gsub("Ж", "ZH", $0);
gsub("Э", "E", $0);
gsub("Я", "YA", $0);
gsub("Ч", "CH", $0);
gsub("С", "S", $0);
gsub("М", "M", $0);
gsub("И", "I", $0);
gsub("Т", "T", $0);
gsub("Ь", "", $0);
gsub("Б", "B", $0);
gsub("Ю", "YU", $0);
gsub("й", "y", $0);
gsub("ц", "c", $0); 
gsub("у", "u", $0); 
gsub("к", "k", $0);
gsub("е", "e", $0);
gsub("ё", "yo", $0);
gsub("н", "n", $0);
gsub("г", "g", $0);
gsub("ш", "sh", $0);
gsub("щ", "shch", $0);
gsub("з", "z", $0);
gsub("х", "kh", $0);
gsub("ъ", "", $0);
gsub("ф", "f", $0);
gsub("ы", "w", $0);
gsub("в", "v", $0);
gsub("а", "a", $0);
gsub("п", "p", $0);
gsub("р", "r", $0);
gsub("о", "o", $0);
gsub("л", "l", $0);
gsub("д", "d", $0);
gsub("ж", "zh", $0);
gsub("э", "e", $0);
gsub("я", "ya", $0);
gsub("ч", "ch", $0);
gsub("с", "s", $0);
gsub("м", "m", $0);
gsub("и", "i", $0);
gsub("т", "t", $0);
gsub("ь", "", $0);
gsub("б", "b", $0);
gsub("ю", "yu", $0);


P. S. Просто хотелось awk применить. На перле надёжнее,
да и половина gsub() сделаны перлом — в командной строке:
cat a | perl  -e 'use locale; use utf8; use open qw(:utf8 :std :encoding(UTF-8)); while(){print lc($_);}';

Tags: , ,
(Оставить комментарий)