【发布时间】:2016-02-03 06:53:21
【问题描述】:
我在一个文件中有以下记录(以及许多其他此类记录)
9460 xyz abc (lmn):1027739543798. Taxpayer's identification number (INN): 123. For all IIB. 2016/02/03
我需要搜索关键字IIB。如果匹配,那么我需要获取整条记录并写入另一个文件。
下面是已经存在的代码。此代码不起作用。此代码的问题是当它需要完全匹配时 记录,它忽略“:”之后的文本并写入另一个文件。
cat keyword.cfg | while read KwdName
do
echo "KEYWORD:"${KwdName} //This prints IIB
grep "^${KwdName}\|${KwdName}\|~${KwdName}~\|:${KwdName}$\|:${KwdName}~" ${mainFileWithListOfRecords} | awk -F ":" '{print $1}' >> ${destinationFile}
done
所以,不要将下面的记录写入目标文件
9460 xyz abc (lmn):1027739543798. Taxpayer's identification number (INN): 123. For all IIB. 2016/02/03
只是写作,
9460 xyz abc (lmn)
cat -vte mainFileWithListOfRecords 给出以下输出
9460^IMEZHPROMBANK^I^ICJSC ;IIB;~ Moscow, (lmn): 1027739543798. Taxpayer's identification number (INN): 123. For all IIB. 2016/02/031#msid=s1448434872350^IC1^I2000/12/28^I2015/11/26^I^I$
【问题讨论】:
-
谢谢。但是,keyword.cfg 文件包含要匹配的关键字列表。像keyword.cfg 包含-IIB PCT DFD 等。我只是以IIB 为例。如果 IIB 不匹配,那么它应该尝试匹配 PCT,然后是 DFD 等等..
-
不。它没有用:)。结果是一样的。它只打印到 ":" 。之后就不写记录了
-
我没听懂你。 Keyword.cfg 文件不包含 ":" 。它只包含 IIB DFD 等。 mainFileWithListOfRecords 包含“:”
-
不是配置文件。发布有问题的
cat -vte "$mainFileWithListOfRecords"的输出 -
我已经按照您的要求编辑了我的问题。