首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对Endnote导出文件格式的字段进行排序,其中的地址中包含GRAZ作为第一行?

如何对Endnote导出文件格式的字段进行排序,其中的地址中包含GRAZ作为第一行?
EN

Stack Overflow用户
提问于 2021-11-28 15:54:28
回答 1查看 44关注 0票数 0

我有一个内部导出文件,如下所示:

代码语言:javascript
复制
    %0 Journal Article
    %A Abu-Rous, M.
    %A Ingolic, E.
    %A Schuster, K. C.
    %D 2006
    %Z Cellulose
    Article
    CODEN: CELLE
    %+ Christian Doppler-Laboratory of Fibre and Textile Chemistry in Cellulosics, Institute of Texile Chemistry and Textile Physics, Leopold-Franzens-University Innsbruck, Hoechsterstrasse 73, A-6850 Dornbirn, Austria
    Research Institute for Electron Microscopy (FELMI), Technical University of Graz, A-8010 Graz, Austria
    Textile Innovation, Lenzing AG, A-4860 Lenzing, Austria
    Schuster, K.C.; Textile Innovation, , A-4860 Lenzing, Austria; email: c.schuster@lenzing.com
    %~ Scopus
    %G English
    
    
    
    %0 Journal Article
    %P 5003-5011
    %! Ursolic acid from Trailliaedoxa gracilis induces apoptosis in medullary thyroid carcinoma cells
    %@ 17912997
    %R 10.3892/mmr.2015.4053
    %1 in_author_address; 
    %F 8
    %K Apoptosis
    Bioactive agents
    %Z Mol. Med. Rep.
    Article
    Chemicals/CAS: caspase 8; ursolic acid, 77-52-1; I kappa B kinase, 209902-66-9; Antineoplastic Agents, Phytogenic; Caspase 8; I-kappa B Kinase; IKBKG protein, human; Plant Extracts; Triterpenes; ursolic acid
    Tradenames: cpt, Sigma Aldrich; rotichrom, karlsruhe, Germany
    %+ Department of Pathophysiology and Immunology, Center of Molecular Medicine, Medical University of Graz, 31a Heinrichstrasse, Graz A, 8010, Austria
    Department of Biochemistry and Molecular Biology, Shanghai Medical School, Fudan University, Shanghai, 200433, China
    Department of Pharmacognosy, Institute of Pharmacy, Center of Molecular Biosciences, Leopold Franzens University of Innsbruck, Innsbruck A, 6010, Austria
    Core Unit of Biomedical Research, Division of Laboratory Animal Science and Genetics, Medical University of Vienna, Himberg A, 2325, Austria
    Research Institute for Electron Microscopy and Fine Structure Research, University of Technology Graz, Graz A, 8010, Austria
    Pfragner, R.; Department of Pathophysiology and Immunology, 31a Heinrichstrasse, Austria; email: roswitha.pfragner@medunigraz.at
    %~ Scopus C2 - 26151624
    %G English

%+开头的字段包含作者地址,可以根据作者的作者地址(1到n关系)排列更多行。每个作者地址用换行符(换行)分隔。

现在,我想问一下,如何根据GRAZ所在的行对这个字段进行排序。这一行中包含了Graz,它们应该是清单中的第一行。

是否有一种方法可以通过bash文本处理工具来实现,或者我需要编写一个Delphi`s程序来访问和导入endnote导出转储。

上面这个例子的输出应该是

代码语言:javascript
复制
    %0 Journal Article
    %A Abu-Rous, M.
    %A Ingolic, E.
    %A Schuster, K. C.
    %D 2006
    %Z Cellulose
    Article
    CODEN: CELLE
    %+ Research Institute for Electron Microscopy (FELMI), Technical University of Graz, A-8010 Graz, Austria
    Christian Doppler-Laboratory of Fibre and Textile Chemistry in Cellulosics, Institute of Texile Chemistry and Textile Physics, Leopold-Franzens-University Innsbruck, Hoechsterstrasse 73, A-6850 Dornbirn, Austria
    Textile Innovation, Lenzing AG, A-4860 Lenzing, Austria
    Schuster, K.C.; Textile Innovation, , A-4860 Lenzing, Austria; email: c.schuster@lenzing.com
    %~ Scopus
    %G English
    
    
    
    %0 Journal Article
    %P 5003-5011
    %! Ursolic acid from Trailliaedoxa gracilis induces apoptosis in medullary thyroid carcinoma cells
    %@ 17912997
    %R 10.3892/mmr.2015.4053
    %1 in_author_address; 
    %F 8
    %K Apoptosis
    Bioactive agents
    %Z Mol. Med. Rep.
    Article
    Chemicals/CAS: caspase 8; ursolic acid, 77-52-1; I kappa B kinase, 209902-66-9; Antineoplastic Agents, Phytogenic; Caspase 8; I-kappa B Kinase; IKBKG protein, human; Plant Extracts; Triterpenes; ursolic acid
    Tradenames: cpt, Sigma Aldrich; rotichrom, karlsruhe, Germany
    %+ Department of Pathophysiology and Immunology, Center of Molecular Medicine, Medical University of Graz, 31a Heinrichstrasse, Graz A, 8010, Austria
    Department of Biochemistry and Molecular Biology, Shanghai Medical School, Fudan University, Shanghai, 200433, China
    Department of Pharmacognosy, Institute of Pharmacy, Center of Molecular Biosciences, Leopold Franzens University of Innsbruck, Innsbruck A, 6010, Austria
    Core Unit of Biomedical Research, Division of Laboratory Animal Science and Genetics, Medical University of Vienna, Himberg A, 2325, Austria
    Research Institute for Electron Microscopy and Fine Structure Research, University of Technology Graz, Graz A, 8010, Austria
    Pfragner, R.; Department of Pathophysiology and Immunology, 31a Heinrichstrasse, Austria; email: roswitha.pfragner@medunigraz.at
    %~ Scopus C2 - 26151624
    %G English

我会很高兴和感谢任何有趣的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-29 05:26:18

请您试一试:

代码语言:javascript
复制
#!/bin/bash

shopt -s nocasematch            # make the match case-insensitive

# print the arrays and empty them
flush() {
    printf "%s" "%+ "
    printf "%s\n" "${out1[@]}" "${out2[@]}"
    out1=(); out2=()
}

while IFS= read -r line; do     # read the file line by line
    if (( auth )); then         # now in the "Author Address" context
        if [[ $line = "%"* ]]; then
                                # end of the "Author Address" context
            auth=0
            flush               # print the arrays
            echo "$line"        # print current line
        else
            [[ $line = *"GRAZ"* ]] && out1+=("$line") || out2+=("$line")
                                # if the line contains "GRAZ" store it in the array out1, else out2
        fi
    else
        if [[ $line = "%+"* ]]; then
            auth=1              # enter in the "Author Address" context
            [[ $line = *"GRAZ"* ]] && out1+=("${line:3}") || out2+=("${line:3}")
                                # ${line:3} removes leading 3 characters
        else
            echo "$line"
        fi
    fi
done < input_file

输出:

代码语言:javascript
复制
%1 Journal Article
%A Abu-Rous, M.
%A Ingolic, E.
%A Schuster, K. C.
%D 2006
%Z Cellulose
Article
CODEN: CELLE
%+ Research Institute for Electron Microscopy (FELMI), Technical University of Graz, A-8010 Graz, Austria
Christian Doppler-Laboratory of Fibre and Textile Chemistry in Cellulosics, Institute of Texile Chemistry and Textile Physics, Leopold-Franzens-University Innsbruck, Hoechsterstrasse 73, A-6850 Dornbirn, Austria
Textile Innovation, Lenzing AG, A-4860 Lenzing, Austria
Schuster, K.C.; Textile Innovation, , A-4860 Lenzing, Austria; email: c.schuster@lenzing.com
%~ Scopus
%G English



%0 Journal Article
%P 5003-5011
%! Ursolic acid from Trailliaedoxa gracilis induces apoptosis in medullary thyroid carcinoma cells
%@ 17912997
%R 10.3892/mmr.2015.4053
%1 in_author_address;
%F 8
%K Apoptosis
Bioactive agents
%Z Mol. Med. Rep.
Article
Chemicals/CAS: caspase 8; ursolic acid, 77-52-1; I kappa B kinase, 209902-66-9; Antineoplastic Agents, Phytogenic; Caspase 8; I-kappa B Kinase; IKBKG protein, human; Plant Extracts; Triterpenes; ursolic acid
Tradenames: cpt, Sigma Aldrich; rotichrom, karlsruhe, Germany
%+ Department of Pathophysiology and Immunology, Center of Molecular Medicine, Medical University of Graz, 31a Heinrichstrasse, Graz A, 8010, Austria
Research Institute for Electron Microscopy and Fine Structure Research, University of Technology Graz, Graz A, 8010, Austria
Pfragner, R.; Department of Pathophysiology and Immunology, 31a Heinrichstrasse, Austria; email: roswitha.pfragner@medunigraz.at
Department of Biochemistry and Molecular Biology, Shanghai Medical School, Fudan University, Shanghai, 200433, China
Department of Pharmacognosy, Institute of Pharmacy, Center of Molecular Biosciences, Leopold Franzens University of Innsbruck, Innsbruck A, 6010, Austria
Core Unit of Biomedical Research, Division of Laboratory Animal Science and Genetics, Medical University of Vienna, Himberg A, 2325, Austria
%~ Scopus C2 - 26151624
%G English

输出与预期的输出略有不同,一个是因为... University of Technology Graz ...行比其他在预期结果中不包含GRAZ的行来得晚,另一个是因为medunigraz被认为与GRAZ匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70145079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档