只有自己动手,丰衣足食咯,呵呵。言归正专,有两种方法,一种是利用Array的方式,另一种是利用正则去替换。复制代码 代码如下:/** * StringReplaceAll * @param source:String 源数据 * @param find:String 替换对象 * @param replacement:Sring 替换内容 * @return String * **/ private function StringReplaceAll( source:String, find:String, replacement:String ):String{ return source.split( find ).join( replacement ); }利用正则的方式没有第一种方便,但也可以解决替换所有的。下面举个“去除换行符号”的例子:复制代码 代码如下:var str:String = "ab\r\ncd\r\nefhi\r\njkl\rmn\nf"; trace(str.replace(new RegExp("[\r\n \r \n]", "g"),

组策略用于从一个单独的点对多个Microsoft Active Directory目录服务用户和计算机对象进行配置。在默认情况下,策略不仅影响应用该策略的容器中的对象,还影响子容器中的对象。   组策略包含了"计算机配置、Windows 设置、安全设置"下的安全设置。您可将预先配置的安全模板导入策略,来完成对这些设置的配置。   应用组策略   下列步骤显示了如何应用组策略,以及如何向"用户权限分配"添加安全组。   将组策略应用于组织单位或域   1.依次单击"开始"、"管理工具"、"Active Directory 用户和计算机",打开"Active Directory 用户和计算机"。   2.突出显示相关域或组织单位,单击"操作"菜单,选择"属性"。   3.选择"组策略"选项卡。   注意:每个容器可应用多个策略。这些策略的处理顺序是从列表的底部向上。如果出现冲突,最后应用的策略优先。   4.单击"新建"创建一个策略,并为其指定有实际意义的名称,如"域策略"。   注意:单击"选项"按钮可配置"禁止替代"设置。"禁止替代"是为每个单独的策略配置的,而不是为整个容器;"阻止策略继承"则是为整个容器配置的。如果"禁止替代"和"阻止策略继承"设置发生冲突,"禁止替代"设置优先。要配置"阻止策略继承",请选中 OU 属性中的复选框。   组策略可自动更新,但为了立即启动更新过程,可在命令提示符下使用下面的 GPUpdate 命令:GPUpdate /force   向"用户权限分配"添加安全组   1.依次单击"开始"、"管理工具"、"Active Directory 用户和计算机",打开"Active Directory 用户和计算机"。   2.突出显示相关 OU(如"成员服务器"),单击"操作"菜单,选择"属性"。   3.单击"组策略"选项卡,选择相关策略(如"成员服务器基准策略"),然后单击"编辑"。   4.在"组策略对象编辑器"中,依次展开"计算机配置"、"Windows 设置"、"安全设置"、"本地策略",然后突出显示"用户权限分配"。   5.在右侧窗格中,右键单击相关用户权限。   6.选中"定义这些策略设置"复选框,单击"添加用户和组"修改该列表。   7.单击"确定"。  将安全模板导入组策略   下列步骤显示了如何向组策略导入安全模板。   导入安全模板   1.依次单击"开始"、"管理工具"、"Active Directory 用户和计算机",打开"Active Directory 用户和计算机"。   2.突出显示相关域或 OU,单击"操作"菜单,选择"属性"。   3.选择"组策略"选项卡。   4.突出显示相关策略,单击"编辑"。   5.依次展开"计算机配置"、"Windows 设置",然后突出显示"安全设置"。   6.单击"操作"菜单,选择"导入策略"。   7.导航到 \Security Guide\Job Aids,选择相关模板,单击"打开"。   8.在"组策略对象编辑器"中,单击"文件"菜单,选择"退出"。   9.在容器属性中,单击"确定"。   使用"安全配置和分析"   下列步骤显示了如何使用"安全配置和分析"来导入、分析和应用安全模板。   导入安全模板   1.依次单击"开始"、"运行"。在"打开"文本框中键入 mmc,然后单击"确定"。   2.在 Microsoft 管理控制台中,单击"文件",选择"添加/删除管理单元"。   3.单击"添加",突出显示列表中的"安全配置和分析"。   4.依次单击"添加"、"关闭"、"确定"。   5.突出显示"安全配置和分析",单击"操作"菜单,选择"打开数据库"。   6.键入新的数据库名称(如 Bastion Host),单击"打开"。   7.在"导入模板"界面中,导航到 \Security Guide\Job Aids,选择相关模板。单击"打开"。   分析导入的模板并与当前设置比较   1.突出显示 Microsoft 管理单元中的"安全配置和分析",单击"操作"菜单,并选择"立即分析计算机"。   2.单击"确定",接受默认的"错误日志文件路径"。   3.完成分析后,展开节点标题对结果进行研究。   应用安全模板   1.突出显示 Microsoft 管理单元中的"安全配置和分析",单击"操作"菜单,选择"立即配置计算机"。   2.单击"确定",接受默认的"错误日志文件路径"。   3.在 Microsoft 管理控制台,单击"文件",然后选择"退出"关闭"安全配置和分析"。

1. 杀毒前关闭系统还原(Win2000系统可以忽略): 右键 我的电脑 ,属性,系统还原,在所有驱动器上关闭系统还原 打勾即可。   清除IE的临时文件:打开IE 点工具-->Internet选项 : Internet临时文件,点“删除文件”按钮 ,将 删除所有脱机内容 打勾,点确定删除。 关闭QQ等应用程序。进行如下操作前,请不要进行任何双击打开磁盘的操作。所有下载的工具都直接放桌面上。 2.用强制删除工具  PowerRMV 下载地址:  http://post.baidu.com/f?kz=158203765 分别填入下面的文件(包括完整的路径) ,勾选“抑止杀灭对象再次生成”,点杀灭 【有找不到提示的请忽略错误继续】 复制代码 代码如下:C:\WINNT\system32\msqgsqajy.exe  C:\WINNT\SYSTEM32\odbcasvc.EXE  D:\Autorun.inf  D:\recycled\info.exe  E:\Autorun.inf  E:\recycled\info.exe  F:\Autorun.inf  F:\recycled\info.exe  G:\Autorun.inf  G:\recycled\info.exe 重启计算机 然后再进入安全模式执行如下的操作  -------------------------------------------------------------- 以下的操作都要求安全模式下进行。 [安全模式?重启电脑时按住F8 选择进入安全模式] -------------------------------------------------------------- 3. 用工具 SREng 删除如下各项  下载及其使用方法看下面的链接【有图解】,看懂再下手操作! SREng常用操作说明(2.0 RC2)http://www.pxue.com/Html/893.html 【如下操作有风险,必须看懂上面的方法再操作。】 【打开SREng后提醒“函数的内容与预期值不符他们可能被一些恶意的软件所修改”的错误请忽略,装杀软后的正常修改。】 ================================== 启动项目 -->注册表 的如下项删除 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]     <msqgsqajy><C:\WINNT\system32\msqgsqajy.exe>  [N/A] ================================== 启动项目 -->服务-->Win32服务应用程序  的如下项删除 [ODBC Administration Service / odbcasvc][Running/Auto Start]   <C:

python 全文检索引擎详解最近一直在探索着如何用Python实现像百度那样的关键词检索功能。说起关键词检索,我们会不由自主地联想到正则表达式。正则表达式是所有检索的基础,python中有个re类,是专门用于正则匹配。然而,光光是正则表达式是不能很好实现检索功能的。python有一个whoosh包,是专门用于全文搜索引擎。 whoosh在国内使用的比较少,而它的性能还没有sphinx/coreseek成熟,不过不同于前者,这是一个纯python库,对python的爱好者更为方便使用。具体的代码如下安装输入命令行 pip install whoosh需要导入的包有:fromwhoosh.index import create_infromwhoosh.fields import *fromwhoosh.analysis import RegexAnalyzerfromwhoosh.analysis import Tokenizer,Token中文分词解析器class ChineseTokenizer(Tokenizer): """ 中文分词解析器 """ def __call__(self, value, positions=False, chars=False, keeporiginal=True, removestops=True, start_pos=0, start_char=0, mode='', **kwargs): assert isinstance(value, text_type), "%r is not unicode "% value t = Token(positions, chars, removestops=removestops, mode=mode, **kwargs) list_seg = jieba.cut_for_search(value) for w in list_seg: t.original = t.text = w t.boost = 0.5 if positions: t.pos = start_pos + value.find(w) if chars: t.startchar = start_char + value.find(w) t.endchar = start_char + value.find(w) + len(w) yield tdef chinese_analyzer(): return ChineseTokenizer()构建索引的函数@staticmethod def create_index(document_dir): analyzer = chinese_analyzer() schema = Schema(titel=TEXT(stored=True, analyzer=analyzer), path=ID(stored=True), content=TEXT(stored=True, analyzer=analyzer)) ix = create_in("./", schema) writer = ix.writer() for parents, dirnames, filenames in os.walk(document_dir): for filename in filenames: title = filename.replace(".txt", "").decode('utf8') print title content = open(document_dir + '/' + filename, 'r').read().decode('utf-8') path = u"/b" writer.add_document(titel=title, path=path, content=content) writer.commit()检索函数 @staticmethod def search(search_str): title_list = [] print 'here' ix = open_dir("./") searcher = ix.searcher() print search_str,type(search_str) results = searcher.find("content", search_str) for hit in results: print hit['titel'] print hit.score print hit.highlights("content", top=10) title_list.append(hit['titel']) print 'tt',title_list return title_list感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

虽然 GUI 桌面(如 KDE 和 GNOME)能够帮助用户利用 Linux 特性,而无需关于命令行接口的功能知识,但还是经常会需要更多的功能和灵活性。而且,基本熟悉这些命令对于在 shell 脚本中正确地使某些功能自动化仍然是必需的。   这篇文章是关于 Linux 文件命令的一个“速成教程”,它是为那些刚接触这个操作系统或者只是需要补充这方面知识的用户提供的。它包含了对一些更有用的命令的一个简明的概述以及关于它们的最强大的应用的指导。下面包含的信息 — 结合一些实验 — 将使您能够容易地掌握这些基本的命令。(注意:当涉及到一个与 Oracle 集群文件系统 (OCFS) 结合的内核时,这些命令中的某些命令的行为可能会稍微有所不同。在此情况下,Oracle 提供了一个 OCFS 工具集,该工具集可以为文件命令应用提供一个更好的选择。)   注意,这里包含的所有示例都在 SUSE Linux 8.0 Professional 上进行了测试。虽然没有理由相信它们在其它的系统上将不能工作,但如果出现问题,您应当查看您的文档,以了解可能的变化。   背景概念   在深入研究规范之前,让我们回顾一些基础知识。   文件和命令   在 Linux/UNIX 操作系统中,所有事物都被当作文件来处理:硬件设备(包括键盘和终端)、目录、命令本身,当然还有文件。这个奇怪的惯例实际上是 Linux/UNIX 的能力和灵活性的基础。   大多数(几乎是全部)的命令形式如下:   command [option] [source file(s)] [target file]   获取帮助   最有用的命令之一是那些提供帮助的命令(特别是对那些学习 Linux 的人而言)。Linux 中的两个重要的信息来源是联机参考手册,或 man 页面和 whatis 工具。您可以用 whatis 命令来访问一个不熟悉的命令的 man 页面。   $ whatis echo   要了解关于这个命令的更多信息,可以使用:   $ man echo   如果您不知道某个特殊任务所需的命令,您可以用 man -k (也称为 apropos)和一个主题来生成可能的命令。例如:   $ man -k files   一个很有用但常常被忽视的命令可以提供关于使用 man 本身的信息:   $ man man   您可以用 SPACEBAR 来浏览任意的 man 页面;UP ARROW 将向上翻滚文件。.要退出,则输入 q,!,或 CTRL-Z。   用户类别   记得那句名言“所有动物一例平等但有些动物比其他动物更加平等”吗?在 Linux 世界中,根用户掌管一切。   根用户可以以另一个用户名 su (源自 'superuser')登录。要执行诸如添加一个新用户、打印机或文件系统之类的任务,必须作为根用户登录或者用 su 命令和根用户密码切换到超级用户。系统文件(包括控制初始化过程的系统文件)归根用户所有。虽然可能允许普通用户对它们进行读操作,但出于系统安全性的原因,编辑的权利将留给根用户。   BASH shell   虽然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默认 shell。它结合了与它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。   BASH 内置的命令 history 默认记录最后输入的 500 条命令。可以通过在命令提示符下输入 history 来查看它们。要检索某个特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在历史列表中输入它的编号,并在编号前面加上 '!',例如:   $ !49   您还可以通过一条命令在历史列表中离位置最靠前的项目的距离来执行该命令:如果在历史列表中有 53 个事件,$ !-3 将执行事件号 51。   像 UNIX/Linux 世界的其它 shell 一样,BASH 使用了特殊的环境变量来方便系统管理。例如:   HOME,用户主目录   PATH,Linux 用来搜索您输入的命令的可执行镜像的搜索路径   HISTSIZE,系统保存的历史事件的数量   除了这些保留的关键字之外,您还可以定义您自己的环境变量。例如,Oracle 使用 ORACLE_HOME (还有其它一些变量),要使 Oracle 安装成功完成,必须在您的环境中设置这些变量。   可以在提示符下临时设置变量:   $HISTSIZE=100   或者,在 /etc/profile (需要根用户权限)中进行系统范围的永久设置,或在 .profile 中进行局部永久设置。   可以通过 echo 命令,并用一个 $ 符号来访问一个环境变量的值,进而查看该值。   $ echo $HOME   /home/bluher   可以用 env 命令来查看当前所有的环境变量。   正则表达式和通配符   许多 Linux 命令使用通配符 * 和 ? 来匹配任意数量的字符或分别匹配任意的单个字符;正则模式匹配表达式利用一个句点 (.) 来匹配除“换行符”之外的任意单个字符。这两种情况下都使用方括号 ([ ]) 来匹配除“*”号之外的字符组。不过,* 号在各种情况下有类似但不同的意义:虽然它在 shell 中将匹配一个或更多的字符,但在正则表达式中,它匹配上述字符的零个或更多的实例。一些命令(如 egrep 和 awk)使用了一组更广泛的特殊字符来进行模式匹配。   文件处理命令   剖析一个文件列表   ls 命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如:   $ ls -liah *   22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile   19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out   925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh      上面的列表显示 8 列:   第 1 列指示文件的 inode,因为我们使用了 -i 选项。剩下的列通过 -l 选项来进行正常显示。   第 2 列显示文件类型和文件访问权限。   第3 列显示链接数,包括目录。   第 4 和第 5 列显示文件的所有者和组所有者。这里,所有者 'bluher' 属于组 'users'。   第 6 列显示文件大小(单位为所显示的单位,而不是默认的字节数,因为我们使用了 -h 选项。   第 7 列显示日期(它看起来像是三列),包括月、日和年,以及当天的时间。   第 8 列显示文件名。在选项列表中使用 -a 将使列表中包含隐藏文件(如 .profile)的列表。   处理文件   可以移动 (mv)、复制 (cp) 或删除 (rm) 文件和目录。明智地使用 -i 选项,以获得确认通常是个不错的主意。   $ cp -i ls.out ls2.out   cp:overwrite `ls2.out'?   mv 命令允许使用 -b 选项,这将在移动文件之前作一个备份拷贝。rm 和 cp 接受功能强大但却危险的 -r 选项,它将在一个目录和它的文件上递归执行。   $ rm -ir Test   rm:descend into directory `Test'? y   可以用 mkdir 来创建目录,用 rmdir 来删除目录。不过,因为不能用 rmdir 来删除包含文件的目录,所以使用 rm 加 -r 选项通常要更方便些。   出于安全的原因,所有的文件都有所有权和保护。文件访问权限(或文件模式)包含之前提到的相同的 10 个字符:   第一个字符指示文件类型。最常见的是 - 代表文件,d 代表目录,而 l 代表链接。   接下来的 9 个字符是三种用户类别的访问权限:文件所有者(字符 2-4),用户组 (5-7) 和其它 (8-10),其中 r 表示读权限,w 表示写权限,x 指示一个文件上的执行权限。破折号 - 如果出现在这九个位置的任意一个,则指示这个操作对该类别的用户禁止。   可以使用 chmod 命令通过字符符号或二进制掩码来设置访问权限。要使用二进制掩码,必须将三个权限组的字符表示转换成二进制格式,然后转换成八进制格式:   用户类别: 所有者 用户组 其它   字符表示: rwx r-x r--   二进制表示: 111 101 100   八进制表示: 7 5 4   将写权限赋予用户组,您可以使用:   chmod g+w test.sh or chmod 774 test.sh   用 umask 命令,在 /etc/init.dev 文件中进行系统范围内的、或在 .profile 文件中进行的本地的文件权限默认设置。这个命令指示用 777 减去这个数字来获取默认的权限:   $ umask 022   这将为用户创建的所有新文件生成一个默认的文件权限 755。   可以用 chown 来修改文件的所有权:   $ chown bluher ls.out   这里,bluher 是新的文件所有者。类似地,组成员资格将按以下方式修改:   $ chgrp devgrp ls.out   这里,devgrp 是新的用户组。   ls 不提供哪些文件是文本的,哪些文件是二进制的的信息。要了解这个信息,您可以使用 file * 命令。   重命名文件   赋予一个文件多个名字的两种流行的方法是利用链接和 alias 命令。Alias 可以用来为一个更长的命令重新起一个更方便的名字:   $ alias ll='ls -l'   $ ll   注意单引号的使用,这使得 BASH 将该项目传递给别名,而不是自己估计它。别名还可用作较长的路径名的缩写:   $ alias jdev9i=/jdev9i/jdev/bin/jdev   关于 alias 和它的反命令 unalias 的更多信息,请查看 BASH 的 man 页面的 'SHELL BUILTIN COMMANDS' 子部分。在最后一个例子中,定义了一个环境变量来实现相同的结果。   $ export JDEV_HOME=/jdev9i/jdev/bin/jdev   $ echo $JDEV_HOME   /jdev9i/jdev/bin/jdev   $ $JDEV_HOME   链接允许几个文件名引用单个源文件,格式如下:   ln [-s] fileyouwanttolinkto newname   单独的 ln 命令创建到文件的一个硬链接,而使用 -s 选项来创建一个符号链接。简而言之,一个硬链接几乎不能和原始的文件区分开(除了这两个文件的 inode 将相同之外)。符号链接较容易区分,因为它们出现在一个长的文件列表中,并用 -〉 来指示源文件,l 指示文件类型。   查看和查找文件   文件过滤器   用来读取文件内容和在文件内容上执行操作的命令有时被称为 1y滤器。sed 和 awk 命令是两个滤波器的例子,因为在以前的 OTN 文章中有它们详细的讨论,在这里将略过。   诸如 cat、 more 和 less 之类的命令让您能够从命令行查看一个文本文件的内容,而无需调用编辑器。Cat 是 'concatenate' 的缩写,它将默认地在标准输出(显示屏)上显示文件内容。和 cat 一起提供的最有趣的选项之一是 -n 选项,它用编号的输出行来显示文件内容。   $ cat -n test.out   1 This is a test.   因为 cat 一次性输出文件中的所有行,所以您可能更喜欢用 more 和 less,因为它们都一次输出一屏的文件内容。Less 是 more 的一个增强的版本,它允许用来自 vi 文本编辑器的关键命令来增强文件查看。例如,d 向前翻滚、b 向后翻滚 N 行(如果 N 是在 d 或 b 之前指定的)。为 N 输入的值成为随后的 d 命令的默认值。man 页面实用工具使用 less 来显示使用说明的内容。   重定向和管道   重定向允许将命令输出重定向到文件中,而不是标准输出,或者类似地,也可重定向输入。重定向的标准符号 〉 创建一个新的文件。〉〉 符号将输出添加到一个现有的文件中:   $ more test2.out   Another test.   $ cat test.out 〉〉 test2.out   $ cat test2.out   Another test.   This is a test.   到文件的标准输入可以用 〈 符号来重定向:   $ cat 〈 test2.out   错误消息用 2〉 和 2〉〉 来重定向和添加,格式如下:   $ command 2〉 name_of_error_file   要避免无意地覆盖一个现有的文件,使用 BASH 内置的命令集:   $ set -o noclobber   可以在命令和输出文件之间用 〉! 符号来重载这个特性。要关闭这个特性,用 +o 代替 -o。   重定向在一个命令和文件之间、或文件和文件之间工作。重定向语句的一项必须是一个文件。   管道使用 |符号,并且在命令之间工作。例如,您可以用以下方式将一个命令的输出直接发送到打印机上:   $ ls -l * | lpr   可以用以下方式快速地找到历史列表中的一个命令:   $ history | grep cat   更多的滤波器   Grep、fgrep 和 egrep 都显示匹配一种模式的行。所有这三个命令都在文件中搜索指定的模式,如果您想不起来一个所需文件的名称,这将非常有用。基本格式是:   grep [options] PATTERN [FILE...]   $ grep -r 'Subject' nsmail   CTRL-Z 将终止上述或其它任何命令。   grep 的最有用的选项可能是 -s。如果您以除根用户之外的任何身份搜索系统文件,那么对于每一个您没有访问权限的文件,都将产生错误消息。这个命令禁止那些消息。   Fgrep(也以 grep -F 调用)只查找固定的字符串,而不是 grep 接收的正则表达式。而 egrep 接收包含更大范围的特殊字符(如 “|”,它指示条件 OR 运算符)的模式。   $ egrep 'Subject|mailto' *   查找文件   find 命令的 GNU 版本非常强大、灵活并且比 UNIX 系统上存在的经典版本更具包容性。它对于涉及到目录结构的任务非常有用,包括在文件上查找和执行命令。find 命令的基本格式是:   $ find startdirectory options matchcriteria [actionoptions]   如果您知道文件的名称、或者甚至名称的一部分,但不知道它所处的目录,您可以这么做:   $ find .-name 'test*'   ./test   ./jdevhome/mywork/EmpWS/EmpBC4J/test   与经典的 UNIX 系统不同,在 Linux 中不需要在末尾添加 -print 操作,因为如果没有指定其它的操作选项,就将假定执行这个操作。在目录起始位置上的一个点 ( . ) 将使 find 在您的工作目录中开始搜索。两个点, ..,在父目录中开始搜索。您可以在任意目录下开始搜索。   注意,您可以使用通配符作为搜索准则的一部分(只要用单引号将整个项目括起来)。   $ find .-name 'test*' -print   ./test.out   ./test2.out   显示拥有 .out 扩展名的一系列文件:   $ find /home -name '*.out'   不过记住,除非您是作为超级用户运行这个命令,否则您将可能得到许多的 'Permission denied' 错误消息。   最强大的搜索工具之一是和 grep 一起使用的 -exec 操作:   $ find .-name '*.html' -exec grep 'mailto:[email protected]' {} ;   这里,我们让 find 命令在当前目录中开始执行, .,查找一个 html 文件,*.html,并在当前文件上执行 (-exec) grep 命令,{}。当使用 -exec 操作时,需要一个分号 ;,这是用来在使用 find 命令时执行其它一些操作。需要反斜线 和引号来确保这些项目通过 BASH,以使它们由命令而不是 shell 来进行解释。   立即掌握 Linux 文件命令   在 Linux 中提供了许多有用的命令和利用它们的强大的方法,在此无法一一说明。此外,完成许多任务通常都存在多种方法。   我们已经看到了一些最常用和最有启发意义的 Linux 文件命令。掌握这些基础但却关键的工具将使您的 Linux 学习走上快车道。利用您手头上的 man 页面,和试验的积极性,您现在拥有了足够的信息来开始探索 Linux 文件操作的力量。   在我的下一篇文章中,我将提供 Linux 系统命令的一个类似的说明。   关于作者:   Sheryl Calish [[email protected]] 是 Blue Heron Consulting 的一位专门研究 Linux 的 Oracle 开发人员。她还是 Central Florida Oracle Users Group 的基金主席和 IOUG Linux SIG 的销售主席。

分类:网页制作

时间:2016-11-10 03:18:07