精华内容
下载资源
问答
  • 如何使用Grep命令查找多个字符串

    千次阅读 2020-09-07 00:15:30
    如何使用Grep 命令查找多个字符串 大家好,我是良许! 今天向大家介绍一个非常有用的技巧,那就是使用 grep 命令查找多个字符串。 简单介绍一下,grep 命令可以理解为是一个功能强大的命令行工具,可以用它在一个或...

    如何使用Grep 命令查找多个字符串

    大家好,我是良许!

    今天向大家介绍一个非常有用的技巧,那就是使用 grep 命令查找多个字符串。

    简单介绍一下,grep 命令可以理解为是一个功能强大的命令行工具,可以用它在一个或多个输入文件中搜索与正则表达式相匹配的文本,然后再将每个匹配的文本用标准输出的格式写出来。

    因此,良许向大家分享一下如何使用 grep 命令的多种搜索模式以及使用 grep 搜索多个字符串:

    多模式 Grep 命令

    grep 命令支持三种正则表达式语法:BasicExtendedPerl-compatible 。当没有指定正则表达式类型时,grep 命令将搜索模式默认为基本正则表达式。

    要搜索多个匹配模式,可以使用 OR ( alternation ) 运算符。我们可以用 OR 运算符 |pipe )指定不同的匹配项,这些匹配项可以是文本字符串,也可以是表达式集。值得注意的是,在所有正则表达式运算符中,这个运算符的优先级是最低的。

    使用 grep 命令基本正则表达式搜索多个匹配模式的语法如下:

    $ grep 'pattern1\|pattern2' filename

    这里需要注意的是,始终要用单引号将正则表达式括起来,因为单引号内的内容原样输出,被单引号括起的内容不管是常量还是变量不会发生替换。

    使用基本正则表达式时,元字符被解释为字面字符。要保留元字符的特殊含义,必须用反斜杠( \ )对它们进行转义。这就是为什么我们要转义 OR 运算符(|)。

    要将模式解释为扩展正则表达式,请调用 grep -E(或 --extended-regexp )选项。使用扩展正则表达式时,不需要对 OR 运算符 (|) 进行转义:

    $ grep -E 'pattern1|pattern2' file

    Grep命令搜索多个字符串

    通常我们认为,文字字符串是最基本的模式。

    接下来我们将示例,搜索某用户日志错误文件中出现的所有 fatalerrorcritical 字符串。语法如下:

    $ grep 'fatal\|error\|critical' /var/log/nginx/error.log

    还需要注意的是,如果要搜索的字符串包含空格,需要用双引号将其括起来。

    下面是使用扩展正则表达式的同一个示例,它不需要转义字符:

    $ grep -E 'fatal|error|critical' /var/log/nginx/error.log

    默认情况下,grep 命令是区分大小写的。要在搜索时忽略大小写,请调用 grep-i (或 --ignore-case )选项,示例如下:

    $ grep -i 'fatal|error|critical' /var/log/nginx/error.log

    当你只想搜索某个单词时,比如你想搜索的是单词 errorgrep 命令会输出所有包含 error 字符串的行,即它除了会输出包含 error 单词的行,还会输出包含 errorlessantiterrorists 等非 error 单词的行,这样是极不方便的。

    因此要仅返回指定字符串是整词的行,或者是由非单词字符括起来的行,可以使用 grep-w (或 --word-regexp )选项:

    $ grep -w 'fatal|error|critical' /var/log/nginx/error.log

    值得注意的是,单词字符包括有字母、数字字符(比如 a-z、a-Z 和 0-9 )以及下划线( _ ),所有其他字符都被视为非单词字符。

    总结

    在工作中,我们经常需要用到 grep 命令来搜索字符串,学会了使用 grep 搜索多个字符串这个技巧,一定有机会用上的。实际上,grep 命令远不止本文所讲的功能,如果你对 grep 命令的功能有任何疑问或者还想学习它的其他功能,请留言告诉我呗!

    最后,最近很多小伙伴找我要Linux学习路线图,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试还是自我提升,相信都会对你有帮助!目录如下:

    免费送给大家,只求大家金指给我点个赞!

    电子书 | Linux开发学习路线图

    也希望有小伙伴能加入我,把这份电子书做得更完美!

    有收获?希望老铁们来个三连击,给更多的人看到这篇文章

    推荐阅读:

    展开全文
  • WebView实现页内文字查找功能

    千次阅读 2019-01-07 07:20:58
    看标题,就知道是搜索匹配当前网页内的关键词的功能啦,惯例先放下成品图(UI参照了桌面版的Chrome): text.gif 效果和桌面版Chrome的页内搜索也是差不多的。下面就介绍下相关相关Api和具体实现流程吧。 Api ...

    最近闲来无事一直在学习WebView的知识,最近几篇博客也都和这个有关。看了好久WebView的Api,终于找到了一个拿的出手给大家分享(水)的功能了。看标题,就知道是搜索匹配当前网页内的关键词的功能啦,惯例先放下成品图(UI参照了桌面版的Chrome):

    text.gif

    效果和桌面版Chrome的页内搜索也是差不多的。下面就介绍下相关相关Api和具体实现流程吧。

    Api

    void findAllAsync(String find)

    找到网页内所有关键词,看方法名字知道是异步查找的。所有找到的匹配项都会用颜色标记(上图是黄色)。

    void findNext(boolean forward)

    切换所找到关键词列表的匹配项。forward是切换方向,true切换到下一个,false切换到前一个。当前选中的匹配项会用另外一个颜色标记(橙色)。注意切换的操作是循环的,比如已经在最后一项了,再往前切换就会回到第一个匹配项。

    void setFindListener(FindListener listener)

    设置接口监听器,回调查找的结果,其中FindListener就一个方法:

     public void onFindResultReceived(int activeMatchOrdinal//当前匹配列表项的序号(从0开始)
     ,int numberOfMatches//所有匹配关键词的个数
     ,boolean isDoneCounting);//有没有查找完成
    

    void clearMatches()

    清除所有找到的关键词的颜色标记。用来做复原操作。

    以下是一些过时(废弃)的方法:

    boolean showFindDialog(String text, boolean showIme)

    找到关键词,并显示弹框。原来WebView有内置的查找文字的弹框,可惜在所有android版本的系统上这个方法都不一定有用。

    int findAll(String find)

    findAllAsync的同步版本,返回的是查找的结果的个数。猜测如果网页内文字太多,同步查找可能引起UI线程阻塞,所以系统建议我们采用异步的查找方式。

    好了主要方法就是以上这些,下面讲下具体的实现流程。

    实现流程

    整个查找的流程(包括显示细节)都仿照了了Chrome的查找方式。

    弹框最初我选择了DialogFrgment,但是dialog会阻塞Webview获取焦点。因为我们预期的结果是查找到所有匹配项后仍能够自己滑动WebView查看。所有只能直接写在WebView的布局里面。为了优化布局加载速度,可以采用如下引用方式:

    <ViewStub 
    android:id="@+id/stub_import"
    android:inflatedId="@+id/panel_import"
    android:layout="@layout/search_dialog"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    />
    

    这样就能实现布局的延迟加载。当然最好的方法还是选择dialog或者poupwindow。可惜没有解决焦点的问题。
    注册查找回调的接口,注意下标索引是从0开始的,所以要加1:

     mWebView.setFindListener(new IX5WebViewBase.FindListener() {
                @Override
                public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches,
                                                 boolean isDoneCounting) {
                    if (isDoneCounting) {
                        if (numberOfMatches != 0) {
                            searchInfo.setText(String.format("%d/%d", (activeMatchOrdinal + 1), numberOfMatches));
                        } else {
                            searchInfo.setText("0/0");
                        }
                    }
                }
            });
    

    通过监听输入框的内容变化进行动态的文字查找。

    mEditText.addTextChangedListener(new SimpleTextWatcher() {
                @Override
                public void afterTextChanged(Editable s) {
                    if (TextUtils.isEmpty(mEditText.getText().toString())) {
                        searchInfo.setVisibility(View.INVISIBLE);
                    } else {
                        searchInfo.setVisibility(View.VISIBLE);
                    }
                    String content = s.toString();
                    if (!TextUtils.isEmpty(content)) {
                        mWebView.findAllAsync(content);
                    }
                }
            });
    
    

    在弹框查找框同时要弹出输入框。并且需要判断有没有存在内容,有的话直接查找,但是这只是为了显示找到匹配项的个数,所以清除颜色标记。

    String content=mEditText.getText().toString();
            if (TextUtils.isEmpty(content)) {
                searchInfo.setVisibility(View.INVISIBLE);
            } else {
                mWebView.findAllAsync(content);
                mWebView.clearMatches();
                searchInfo.setVisibility(View.VISIBLE);
            }
            KeyboardUtils.showSoftInput(getContext(), mEditText);
    

    在隐藏查找框的时候隐藏输入框和清楚匹配项的颜色标记:

    searchLayout.setVisibility(View.GONE);
    KeyboardUtils.hideSoftInput(getActivity(), mEditText);
    mWebView.clearMatches();
    

    查找框的进入消失动画可以用Transition实现
    TransitionManager.beginDelayedTransition(mViewGroup, new Slide(Gravity.TOP));

    以上差不多就是所有的实现要点了。

    展开全文
  • 在国内大家查找外文文献时,一般上知网是大家的第一选择,其时还有一个网站比知网要好用很,尤其是在外文文献查找方面,做的更加出色,网站的版面、功能更加符合国内用户。 这个网站叫掌桥科研,具体介绍大家百度...

    在国内大家查找外文文献时,一般上知网是大家的第一选择,其时还有一个网站比知网要好用很多,尤其是在外文文献查找方面,做的更加出色,网站的版面、功能更加符合国内用户。

    这个网站叫掌桥科研,具体介绍大家百度去,在这里我就不做介绍了,只做一个外文文献方面的对比。

    下面是我做的一个关于知网与掌桥科研在外文文献查找方面,做的一个对比。

    第一,外文文献查找入口的对比。
    知网的新版首页上看不到外文文献查找的直接入口,只有一个文献检索的搜索框,这对于新手小白来说无疑是灾难,在不知要找具体找哪篇外文文献论文的情况下,几乎是无从下手,不知从哪去查找外文文献论文。
    在这里插入图片描述
    而掌桥科研在这方面做的就比较好一些了,在首页搜索框左侧有一个文献导航,那里很清楚的给出了中外文献的分类;还有在搜索框下方有中外文献的分类选项;想查找哪一类外文文献论文,直接点击,就可以了,这很适合新手小白操作,老手就更不用说了。
    在这里插入图片描述
    第二、外文文献领域分类的对比。
    知网上的外文文献领域分类较为笼统,不太具体,只有学科专业的分类,没有做期刊、会议、学位、OA文献等这些类别,这样查找起来,很麻烦,没有向导性的板块。
    在这里插入图片描述
    掌桥科研在外文文献领域分类方面做的更加的具体化,专业、类别有做细分,比如外文期刊、外文会议、外文学位、外文OA文献、美国政府科技报告、外军科技报告等大类的化分,在大类化分里,还是细类学科的化分,总之很细入微。
    在这里插入图片描述
    第三、外文文献论文查看体验的对比
    在知网上搜到外文文献时,列表中清一色的英文字母,这对于英语学渣来说,又是一个灾难,论文一般都是专业术语,面对这样的单词好多看不懂,还要借助翻译软件来查看,既麻烦又浪费大把的时间。
    在这里插入图片描述

    掌桥科研在这方面做的很用心,贴心,网站上做了一个机译的功能,论文题名自动机译成中文,哪怕你是英语学渣,也能看得懂。就算论文是日文、俄文、西班牙文、法文等一样无障碍,网站直接机译中文,简单明了,细心周到。
    在这里插入图片描述

    第四、外文文献下载路径对比
    用过知网的同学都知道,知网上的外文文献,好多都没有下载入口,不能下载,就是支持下载的也只支持PDF格式,不支持Word格式,也不支持外文文献翻译。
    在这里插入图片描述

    掌桥科研上的外文文献论文下载入口很明显,且有2种选择,分别是原文传递和原文传递并翻译,输出格式支持PDF和Word格式,是不是很贴心?
    在这里插入图片描述

    第五、外文文献资源对比
    知网上的中文文献期刊比较多,而外文文献期刊则很少,知网上的外文期刊有5.7万余种,2470余万篇,国际会议80余万篇。
    在这里插入图片描述

    掌桥科研上的外文文献很全齐,库量很大,在国内应该是最多的了,外文文献有5100余万篇,并不断增加中,每月更新200多万篇。其中包括外文期刊,外文会议、外文OA文献、美国政府科技报告、外军国防科技报告等。
    在这里插入图片描述

    经过以上5个方面的比对,知网在外文文献方面确实弱好多,没有掌桥科研做的好,这样一款外文文献神器值得五星推荐。

    该网站地址:https://www.zhangqiaokeyan.com/?from=lsdn

    觉得这篇文章不错,就给个赞,收藏起来吧!

    展开全文
  • 正则表达式:Notepad++查找两段特殊字符之间文字并在该目标字符后面添加字符

    今日在工作中使用Notepad++处理json文件时遇到一个正则表达式查找并添加字符的问题:

    问题描述:

    我们工作团队人员需要迁移一个平台的文章内容到另一个平台,使用富文本编辑器进行复制迁移,其中文本链接需要手工添加,但由于提前没做要求,大家都没有设置链接的跳转目标页,也就是都是默认的在本网页打开新链接,在用户体验中属于不良好体验。而且链接数目较多,再次逐一添加确实耽误了人力,所以就想办法在所有文章源文件(json格式)中批量处理,既:
    1、确定查找目标字符串:所有以 href= 开头以 > 结尾的字符片段;
    2、在每个查找到的字符串后添加的理想代码字符 target=\"_blank\" ,由于是在json文件中所以要注意使用反斜杠 \ 的转义字符表示方式;

    原字符示例:text_example<a href=\"http://example1.com/\">link_text_example</a>......text_example<a href=\"http://example2.aspx/\">link_text_example</a>......

    解决方案:

    1、查找的正则表达式:(?<=href=)(.*?)(?=>)
    2、替换的正则表达式:($1)( target=\\"_blank\\")
    3、图示:

    修改后字符示例:
    text_example<a href=\"http://example1.com/\" target=\"_blank\">link_text_example</a>....
    ..text_example<a href=\"http://example2.aspx/\" target=\"_blank\">link_text_example</a>......


    展开全文
  • 做一网络爬虫程序 然后爬行的这些网页当做自己的database 然后把html 转换成txt 文档。然后待检测文档与这些文档进行对比。检测句子与句子之间的相似度。 使用lucene,分词统计都应该可以。 
  • 清除文字水印的方法比较,主要有两种:手动在Word里简易清除、利用浏览器插件来清除。 1.颜色替换巧除“干扰码” 在选中网页中的一段预复制内容(含有文字水印)后会发现在每行的前、后端都插入有数字和字母构成...
  • 如何复制网页上不能复制的文字——三种解决方案

    万次阅读 热门讨论 2020-06-11 09:44:19
    想必很小伙伴遇到过这样的情况,在网上查找的资料,但是因为网页本身的限制不允许复制或者需要付费: 遇到这种情况应该怎么办呢?接下来,就和大家分享下如何免费复制网页上不能复制的文字! 解决方法一:...
  • 因为Selenium是通过程序来自动操控网页的控件元素,比如单击某个按钮、输入文本框内容等,若网页中有多个同类型的元素,好比有多个按钮,想要Selenium精准地单击目标元素,需要将目标元素的具体信息告知Selenium,让...
  • 清除文字水印的方法比较,主要有两种:手动在Word里简易清除、利用浏览器插件来清除。1.颜色替换巧除“干扰码”在选中网页中的一段预复制内容(含有文字水印)后会发现在每行的前、后端都插入有数字和字母构成的...
  • find 查找命令

    千次阅读 2019-03-21 09:59:14
    3.4 find查找命令 3.4.1 语法 用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression] 默认路径为当前目录;默认表达式为 –print find [-H] [-L] [-P] [-D ...
  • 有时候我们需要找一些高质量的资料 但是关键字搜索往往给出一些热门的网页 而且网页的数量巨大,要找到高质量的,要一页一页点开看,费时很 其实可以改为搜索图片,图片可以选用“大尺寸”等工具进行筛选 在图片...
  • 今天开发需要微信分享网页链接自定义图片和文字描述,于是网上各种查找资料和各种看手册,遇到了好多坑,不过啃了半天以后终于把问题解决了,以防以后忘记,今天记录一下; 首先,由于微信已经发布了想要分享链接必须调用...
  • 时候当我们在阅读和浏览PDF文档的时候,有时候内容比较,很难一下就看到自己需要查找的内容,如果是用眼睛慢慢看的话不仅浪费时间浪费精力,还会产生视觉疲劳,想要快速找到关键字就需要用查找功能,那么如何...
  • 如何快速的下载网页上的文字

    千次阅读 2019-12-26 19:26:57
    如何快速的下载网页文字 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的...
  • 因此,当你的企业网站跳出率超过70%的时候,就要引起注意并且查找原因改进了。 那么什么是网站跳出率呢?跳出率是指在只访问了入口页面(例如网站首页)就离开的访问量与所产生总访问量的百分比。跳出率计算公式:...
  • 当你把网页中的文字复制到WPS文字或者Word中去时,会带有很多的换行符,或者可能会因复制而产生多个回车符。一个一个的去删除显然不可取。那么就没有什么办法可以批量去掉吗?方法很多,下面,着重介绍几
  • 输入 n 会查找下一结果 /pattern 向下搜索 n继续搜索下一 ?pattern 向上搜索 #继续搜索上一 1. 暂时显示/取消行号: 使用Vim打开文件后,在Normal模式下输入 :set number(或 :se
  • 网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一文件,甚至可以...
  • 前言:从一开始接触服务器,主机等,就觉得如果一个网站服务器主机的话,那么像百度,腾讯等这么大公司那岂不是数不尽的服务器了。一直也很好奇到底是怎么回事,但没有认真总结过到底是如何实现的。 现在因为...
  • 通常是长文连篇,为了提高效率,需要在必要时做一些标记然后回过头来看,可惜用的搜狗浏览器没有这样的批注、标记工具啊,于是在网上找各种插件,都没找到,确发现许多在线网站可以提供在线支持;唯一发现的一小...
  • 用于查找文本的正则表达式

    万次阅读 2016-09-26 15:15:13
    如果您不知道所要查找的确切文本或代码,或者要查找文本或代码字符串的多个匹配项,则可以使用正表达式。 正则表达式是一种文本模式,它可以描述所要查找的文本的一种或多种变体。正则表达式由特定字符(如字母“a...
  •  1、软回车替换成硬回车:点击菜单栏中的“开始”→“替换”(F5) ,在“查找内容”里面输入^l(或点击“特殊格式”→“手动换行符”);“替换为”里面不输入任何字符,然后点“全部替换” ,就可以删除整个...
  • 最近一直面试换工作,闲来无聊写写。 思路: 1、查找目标目录下的以test...具体实现,多个测试用例文件,举例:login,personal(登录case,和 登录后进入个人中心) 新建三个文件分别为:test_login_case.py te...
  • Linux批量查找文件内容

    千次阅读 2015-09-11 14:16:46
    Linux批量查找文件内容比如查找当前目录下面所有的php文件里面的内容find ./ -name "*.php" | xargs grep '要查找的内容'如果需要查找的内容包含特殊符号,比如$等等,grep要加参数find ./ -name "*.php" | xargs ...
  • 以下方式都是在查找机器学习、深度学习相关的论文而发现的。 目录 一.https://arxiv.org/search/cs 二.semanticscholar:https://www.semanticscholar.org/search?year%5B0%5D=2014&year%5B1%5D=2019&q=...
  • 也许很多人都早已听说过这句话,但我还是想引用《编程珠玑》上的如下几段文字:  “二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它
  • selenium查找文本 Selenium中CSS定位器是一基本概念,每旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点。 在Selenium中充分使用CSS定位器可以帮助您以更高效,更彻底的方式执行测试。 我从7年...
  • 如何快速查找资料

    千次阅读 2015-12-26 09:30:28
    前记: 我是完整的看完了。内容有点乱啊,自己没有时间整理,先放在自己的印象笔记里了。... GOOGLE速度极快,据说有8000台服务器,200条T3级宽带; GOOGLE的专利网页级别技术PageRank能够提供高命中率的搜
  • 有意思的w3m(Linux下的文字网页浏览器) 2010-02-07 16:06  最近在红联论坛上看到一关于htmlview命令的文字浏览器,在Ubuntu下试了一下,不管用,不知当时作者使用的哪个版本的Linux,但是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,976
精华内容 31,190
关键字:

多个网页查找文字