我们有许多rtf文件,需要在oracle ebs中上传到它们各自的类别中。为此,我们需要读取存储在rtf文件的文档属性中的一些信息。这些字段是标题、主题、作者、公司和类别。
当我们在记事本中打开一个rtf文件时,我们可以看到这些信息,但不知道如何使用linux命令提取它。使用grep不是很成功。
我在这里粘贴了一部分包含此信息的rtf文件

\mwrapIndent1440\mintLim0\mnaryLim1}{\info**{\title ^XXSLS_GBL_ORDACK^}****{\subject XXSLS}****{\author ^es_ES,es_FR,ES_IT,ES_de^}**{\doccomm $Header: XXSLS_GBL_ORDACK_ES_ES.rtf $}
{\operator }{\creatim\yr2012\mo11\dy11\hr14\min3}{\revtim\yr2013\mo3\dy2\hr10\min43}{\version24}{\edmins361}{\nofpages4}{\nofwords725}{\nofchars14202}{\*\manager }{\*\company }**{\*\category ^BD^}**{\nofcharsws14898}
{\vern32773}}{\*\userprops {\propname _DocHome}\proptype3{\staticval -974575144}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11850\paperh18144\margl851\margr851\margt851\margb0\gutter0\ltrsect

有人可以建议我们如何提取这些信息如下:
Title=^XXSLS_GBL_ORDACK^
Subject=XXSLS
Author=^es_ES,es_FR,ES_IT,ES_de^
Category=^BD^

最佳答案

grep可以使用-e(高级regex)标志和-o(仅匹配输出)标志来完成这项工作。

 title=`grep -oE 'title [^\}]+' file.rtf | sed 's/title //g'`
 echo "title=$title"
 subject=`grep -oE 'subject [^\}]+' file.rtf | sed 's/subject //g'`
 echo "subject=$subject"
 author=`grep -oE 'author [^\}]+' file.rtf | sed 's/author //g'`
 echo "author=$author"
 category=`grep -oE 'category [^\}]+' file.rtf | sed 's/category //g'`
 echo "category=$category"

我明白了
title=^XXSLS_GBL_ORDACK^
subject=XXSLS
author=^es_ES,es_FR,ES_IT,ES_de^
category=^BD^

关于linux - 从Shell脚本中的RTF文件中提取信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15198974/

10-10 14:16