我正在尝试在OS / X中的文本文件上使用GREP作为测试。已知包含以下文本,包括空格字符。
(10) Business Day
我的正则表达式搜索模式如下:
[\(][0-9]{1,3}[\)] business day
但是,这不起作用:
$ grep -Eoi '[\(][0-9]{1,3}[\)] business day' *.txt
如果从上面删除“ day”,则会得到以下信息:
$ grep -Eoi '[\(][0-9]{1,3}[\)] business' *.txt
(10) Business
这是上述行的egrep -oi或grep -Eoi的预期输出。
这都不是:
$ grep -Eoi '[\(][0-9]{1,3}[\)]\sbusiness\sday' *.txt
这也不是:
$ grep -Eoi '[\(][0-9]{1,3}[\)] business\sday' *.txt
这也不是:
$ grep -Eoi '[\(][0-9]{1,3}[\)][[:space:]]business[[:space:]]day' *.txt
这也不是:
$ grep -Eoi '[\(][0-9]{1,3}[\)] business[[:space:]]day' *.txt
产生期望的结果,即:
(10) Business Day
取而代之的是,他们这样做:
$
(没有什么)
在这上面,我已经浪费了数小时的时间来砸我的头在桌上。Grep显然不是火箭手术,所以我在这里想念什么????
解决了。不过,我要感谢vielmetti和suku指出正确的方向。
问题是多方面的。
首先,问题与从Mac操作系统上的Word文档中保存文本文件时的编码有关。您需要将其保存为MS-DOS格式,并且不要插入换行符。
解决该问题后,该命令开始查找所需的文本,并且一旦我弄清楚了MACScript方法,以便可以将grep命令正确地放入vba中,一切就都准备就绪了。
因此,要进行检查-在将MS-Word文档作为文本文件保存在MAC上时,请确保将MS-DOS格式与OUT换行一起使用。
这是保存它的VBA命令:
Document.SaveAs FileName:=filePath & docName & ".txt", _
FileFormat:=wdFormatText, _
LockComments:=False, _
Password:="", _
AddToRecentFiles:=False, _
WritePassword:="", _
ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, _
SaveFormsData:=False, _
SaveAsAOCELetter:=False, _
Encoding:=437, _
InsertLineBreaks:=False, _
AllowSubstitutions:=False, _
LineEnding:=wdCROnly
关键设置InsertLineBreaks:= False,可能还有LineEnding:= wdCROnly。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句