精华内容
下载资源
问答
  • /*** 获取hadoop相关配置信息* @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径* @return*/public static Configuration getHadoopConfig(String hadoopConfPath){Configuration conf=new ...

    /**

    * 获取hadoop相关配置信息

    * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径

    * @return

    */

    public static Configuration getHadoopConfig(String hadoopConfPath){

    Configuration conf=new Configuration();

    conf.addResource(new Path(hadoopConfPath+"/core-site.xml"));

    conf.addResource(new Path(hadoopConfPath+"/hdfs-site.xml"));

    return conf;

    }

    /**

    * 获取hdfs文件系统连接

    * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径

    * @return

    */

    public static FileSystem getFileSystem(String hadoopConfPath) {

    Configuration conf=new Configuration();

    conf.addResource(new Path(hadoopConfPath+"/core-site.xml"));

    conf.addResource(new Path(hadoopConfPath+"/hdfs-site.xml"));

    FileSystem fs = null;

    try {

    fs=FileSystem.get(conf);

    } catch (IOException e) {

    LOGGER.error("从path={}路径获取hadoop配置信息错误:{}", hadoopConfPath, e.getMessage());

    }

    return fs;

    }

    正则匹配路径的方法:

    /**

    * 通过正则获取该目录下满足条件的所有目录

    * @param luceneFilePathRegular 正则目录,如/user/solrindex/正则表达式

    * @return 满足正则表达式的目录集合 list

    */

    public static List fetchDirByRegularLinux(String luceneFilePathRegular){

    List list=new ArrayList<>();

    //分割获取主目录

    int len= luceneFilePathRegular.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+1;

    String mainDir=luceneFilePathRegular.substring(0, len);

    String regular=luceneFilePathRegular.substring(len,luceneFilePathRegular.length());

    File dir=new File(mainDir);

    if(dir.exists() && dir.isDirectory()){

    File [] arr= dir.listFiles();

    for (File file : arr) {

    if (file.exists() && file.isDirectory()) {

    String fileName = file.getName();

    if (matchStr(fileName, regular)) {

    list.add(file.getAbsolutePath()+SolrUtil.INDEX_DIR_SUFFIX);

    }

    }

    }

    }

    if(list.size()>0){

    LOGGER.info("通过正则匹配到的Solr目录有:");

    for (String s : list) {

    LOGGER.info(s);

    }

    }else{

    LOGGER.error("路径{}下,不存在满足正则:{}条件的目录", dir, regular);

    }

    return list;

    }

    /**

    * 通过正则获取该目录下满足条件的所有目录

    * @param luceneFilePathRegular 正则目录,如hdfs:/user/solrindex/正则表达式

    * @param nameNodeConfigPath //获取name配置信息目录

    * @return 满足正则表达式的目录集合 list

    */

    public static List fetchDirByRegularHdfs(String luceneFilePathRegular,String nameNodeConfigPath){

    List list=new ArrayList<>();

    FileSystem fs=HdfsUtil.getFileSystem(nameNodeConfigPath);

    String prefixHdfs=luceneFilePathRegular.split(":")[0];

    String hdfsPath=luceneFilePathRegular.split(":")[1];

    //分割获取主目录

    int len= hdfsPath.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+1;

    String mainDir=hdfsPath.substring(0, len);

    String regular=hdfsPath.substring(len, hdfsPath.length());

    try {

    FileStatus[] fileStatuses = fs.globStatus(new Path(mainDir+"*"));

    for (FileStatus fileStatus : fileStatuses){

    if (fileStatus.isDirectory() && matchStr(fileStatus.getPath().getName(), regular)) {

    list.add(prefixHdfs+":"+mainDir+fileStatus.getPath().getName()+SolrUtil.INDEX_DIR_SUFFIX);

    }

    }

    } catch (IOException e) {

    LOGGER.error("获取hdfs目录信息异常,路径:{},异常信息:{}",luceneFilePathRegular,e.getMessage());

    e.printStackTrace();

    }

    if(list.size()>0){

    LOGGER.info("通过正则匹配到的Solr目录有:");

    for (String s : list) {

    LOGGER.info(s);

    }

    }else{

    LOGGER.error("路径{}下,不存在满足正则:{}条件的目录", luceneFilePathRegular, regular);

    }

    return list;

    }

    /**

    * @Method Description:按正则表示是匹配字符串

    * @param str

    * @param regular

    * @return

    * @author: libingjie

    */

    public static Boolean matchStr(String str, String regular) {

    Pattern pattern = Pattern.compile(regular);

    Matcher matcher = pattern.matcher(str);

    return matcher.matches();

    }

    php程序无法记录log情况下可尝试下面方法记录log

    error_reporting(E_ERROR | E_PARSE); function shutdownCallback(){    $arrError = error_get_last(); // ...

    python获取文件扩展名的方法&lpar;转&rpar;

    主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧.具体实现方法如下: 1 2 3 4 import os.path def file_extension(path ...

    python获取文件扩展名的方法

    主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧 import os.path def file_extension(path): ] print file_ex ...

    Linux记录-shell获取hdfs used使用

    #!/bin/bash export JAVA_HOME=/app/jdk/jdk1.8.0_92 export HADOOP_HOME=/app/hadoop export HADOOP_CONF_ ...

    Eclipse 上传 删除 下载 分析 hdfs 上的文件

    本篇讲解如何通过Eclipse 编写代码去操作分析hdfs 上的文件. 1.在eclipse 下新建Map/Reduce Project项目.如图:  项目建好后,会默认加载一系列相应的jar包. 下 ...

    用流的方式来操作hdfs上的文件

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

    HBase 在HDFS 上的目录树

    总所周知,HBase 是天生就是架设在 HDFS 上,在这个分布式文件系统中,HBase 是怎么去构建自己的目录树的呢? 这里只介绍系统级别的目录树. 一.0.94-cdh4.2.1版本 系 ...

    hadoop的API对HDFS上的文件访问

    这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...

    iOS获取UIView上某点的颜色值

    项目需求中遇到获取UIView上某个坐标点的RGB颜色值的需求,现在把自己找到的解决方案简单总结记录一下,遇到了下面的情况: 不可移动的UIView 旋转式的UIView 滑条式的UIView 不可移 ...

    随机推荐

    word-spacing汉字不起作用的解决方法

    异常处理汇总-前端系列 http://www.cnblogs.com/dunitian/p/4523015.html 调节文字间的距离,发现==>word-spacing汉字不起作用 研究发现, ...

    【PHP基础】位运算与原码,反码,补码

    对于有符号的而言:   ①二进制的最高位是符号位: 0表示正数,1表示负数   ②正数的原码,反码,补码都一样   ③负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)    ...

    Spring IoC — 基于Java类的配置

    普通的POJO只要标注@Configuration注解,就可以为Spring容器提供Bean定义的信息了,每个标注了@Bean的类方法都相当于提供一个Bean的定义信息. 基于Java类的配置方法和基 ...

    排序算法SIX&colon;冒泡排序BubbleSort

    /** *冒泡排序: * 两个两个比较,一轮过后最大的排在了最后面 * n个数变为n-1个没排好的数 * 再进行一轮 * 第二大的排在了倒数第二个 * 以此类推 * 直到排到第一个为止 * * 弄两个 ...

    css实现居中的各种方法

    css垂直居中有很多种方法,可以参考下这个网站

    Noip2008提高组总结

    Noip2008前三题是基础题,仔细一些都是可以AC的,第四题的证明很巧妙,但是看懂后代码其实很简单,感觉在这些大家都不屑去做的简单题中又学到了不少,四道题代码基本都是十几二十行就够了,渐渐感觉到,比 ...

    hadoop dfs&period;datanode&period;du&period;reserved 预留空间配置方法

    对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置 dfs.datanode.du.reserved< ...

    idea 常用快捷键

    =============intellij idea 快捷键============= ctrl+] 诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处 ctrl+[ 同上,快速跳至代码 ...

    JS的全局变量与局部变量及变量的提升

    遇到全局变量与局部变量的时候总是出一些或多或少的问题,于是专门花时间去认真研究了一下全局变量与局部变量. 这是在网上看到的一个关于全局变量与局部变量的代码,看了下作者的解析,自己也进行了研究. &lt ...

    StructureStreaming与kafka集成读取数据必要的jar包

    org.apache.spark& ...

    展开全文
  • 打印匹配到的行模式:由正则表达式字符及文本字符所编写的过滤条件选项:–color=auto 对匹配到的文本着色显示-v 显示没有被匹配到的行-i 忽略大小写匹配-n 显示匹配到的行号-c 统计匹配到的行总数-o 仅显...

    1、grep: Global searchREgular expression and Print out tht line

    文本搜索工具,根据用户指定的模式对目标文本进行逐行匹配检查;打印匹配到的行

    模式:由正则表达式字符及文本字符所编写的过滤条件

    选项:

    –color=auto 对匹配到的文本着色显示

    -v 显示没有被匹配到的行

    -i 忽略大小写匹配

    -n 显示匹配到的行号

    -c 统计匹配到的行总数

    -o 仅显示匹配到的字符串

    -q 静默模式,不输出任何信息

    -A #: 同时显示匹配行后的#行

    -B #: 同时显示匹配行前的#行

    -C #: 同时显示匹配行前后的#行

    -e 实现多选项之间的逻辑或关系(grep -e ‘cat’ -e ‘dog’ file)

    -w 匹配整个单词 -E egrep -F fgrep

    2、正则表达式

    规则查看: man 7 regex

    元字符分类:字符匹配、匹配次数、位置、分组

    字符匹配:

    . 匹配任意单个字符

    [] 匹配指定范围内的任意单个字符   [^] 匹配指定范围外的任意单个字符

    [:lower:] 小写字母

    [:upper:]

    [:alpha:]

    [:digit:] 十进制数字

    [:alnum:] 字母和数字

    [:xdigit:] 十六进制数字

    [:blank:] 空白字符(空格和制表符)

    [:space:] 水平和垂直的空白字符

    [:cntrl:] 不可打印的控制字符

    [:graph:] 可打印的非空白字符

    [:print:] 可打印字符

    [:punct:] 标点符号

    匹配次数:

    * 匹配前面的字符任意次,贪婪模式:尽可能长的匹配 (.* 匹配任意长度的任何字符)

    \? 匹配前面的字符0或1次

    \+ 匹配前面的字符至少一次

    \{n\} 匹配前面的字符n次  \{n,m\} 匹配前面的字符n-m次  \{,m\}  \{n,\}

    位置锚定:定位字符出现的位置

    ^ 行首;$ 行尾 (^$ 空白行; ^pattern$ 模式匹配整行 ;^[[:space:]]$ 空白行)

    \

    \ 匹配整个单词)

    分组: \(pattern\),将括号中的模式当作一组进行处理。分组括号中的模式匹配到的内容会被正则表式引擎记录于内部的变量中,这些变量的命名方式为:\1 \2 \3 。\1 表示从左侧起第一个左括号以及与之匹配的右括号之间的内容

    后向引用:引用前面分组括号中模式匹配到的内容,并非模式本身

    逻辑: \| 或

    示例: 用到正则表达式的匹配模式需要用引号引起来

    1、获得本机的ip地址

    ifconfig eth0|grep “inet addr”|egrep -o “([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}”|head -1

    ifconfig eth0|grep “inet addr”|egrep -o “.*Bcast:”|egrep -o “\b[[:digit:]\.]*\b”

    更准确的取法: ifconfig eth0|grep “inet addr”|egrep -o “(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])”

    2、查找centos6中的系统用户,输出起用户名和uid

    cut -d: -f1,3 /etc/passwd|grep -E “(\b[0-9]|[1-9][0-9]|[1-4][0-9][0-9])$”

    3、查找centos系统的主版本号:

    grep -o ” [0-9]” /etc/centos-release|tr -d  ” “

    4、找出//etc/passwd中用户名和shell同名的行

    grep ‘^\([^:]*\)\b.*\/\1$’ /etc/passwd

    5、取路径的基名

    echo “/etc/rc.d/init.d/” |egrep -o “[^/]*/?$”|tr -d “/”

    6、取路径名

    echo “/etc/rc.d/init.d/” |egrep -o “.*[^/]+”|egrep -o “.*/”|egrep -o “.*[^/]+”

    本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86694

    展开全文
  • /** * 获取hadoop相关配置信息 ... * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径 * @return */ public static Configuration getHadoopConfig(String hadoopConfPath){ Configur...
        /**
         * 获取hadoop相关配置信息
         * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径
         * @return
         */
        public static Configuration getHadoopConfig(String hadoopConfPath){
            Configuration conf=new Configuration();
            conf.addResource(new Path(hadoopConfPath+"/core-site.xml"));
            conf.addResource(new Path(hadoopConfPath+"/hdfs-site.xml"));
            return conf;
        }
    
        /**
         * 获取hdfs文件系统连接
         * @param hadoopConfPath 目前用户需要提供hadoop的配置文件路径
         * @return
         */
        public static FileSystem getFileSystem(String hadoopConfPath) {
            Configuration conf=new Configuration();
            conf.addResource(new Path(hadoopConfPath+"/core-site.xml"));
            conf.addResource(new Path(hadoopConfPath+"/hdfs-site.xml"));
            FileSystem fs = null;
            try {
                fs=FileSystem.get(conf);
            } catch (IOException e) {
    
                LOGGER.error("从path={}路径获取hadoop配置信息错误:{}", hadoopConfPath, e.getMessage());
    
            }
    
            return fs;
        }

     

     

    正则匹配路径的方法:

     /**
         * 通过正则获取该目录下满足条件的所有目录
         * @param luceneFilePathRegular  正则目录,如/user/solrindex/正则表达式
         * @return 满足正则表达式的目录集合 list
         */
        public static List<String> fetchDirByRegularLinux(String luceneFilePathRegular){
            List<String> list=new ArrayList<>();
            //分割获取主目录
            int len= luceneFilePathRegular.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+1;
            String mainDir=luceneFilePathRegular.substring(0, len);
            String regular=luceneFilePathRegular.substring(len,luceneFilePathRegular.length());
            File dir=new File(mainDir);
            if(dir.exists() && dir.isDirectory()){
                File [] arr= dir.listFiles();
                for (File file : arr) {
                    if (file.exists() && file.isDirectory()) {
                        String fileName = file.getName();
                        if (matchStr(fileName, regular)) {
                            list.add(file.getAbsolutePath()+SolrUtil.INDEX_DIR_SUFFIX);
                        }
                    }
                }
            }
            if(list.size()>0){
                LOGGER.info("通过正则匹配到的Solr目录有:");
                for (String s : list) {
                    LOGGER.info(s);
                }
            }else{
                LOGGER.error("路径{}下,不存在满足正则:{}条件的目录", dir, regular);
            }
            return  list;
        }
    
        /**
         * 通过正则获取该目录下满足条件的所有目录
         * @param luceneFilePathRegular 正则目录,如hdfs:/user/solrindex/正则表达式
         * @param nameNodeConfigPath //获取name配置信息目录
         * @return 满足正则表达式的目录集合 list
         */
        public static List<String> fetchDirByRegularHdfs(String luceneFilePathRegular,String nameNodeConfigPath){
            List<String> list=new ArrayList<>();
            FileSystem fs=HdfsUtil.getFileSystem(nameNodeConfigPath);
            String prefixHdfs=luceneFilePathRegular.split(":")[0];
            String hdfsPath=luceneFilePathRegular.split(":")[1];
            //分割获取主目录
            int len= hdfsPath.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+1;
            String mainDir=hdfsPath.substring(0, len);
            String regular=hdfsPath.substring(len, hdfsPath.length());
            try {
                FileStatus[] fileStatuses = fs.globStatus(new Path(mainDir+"*"));
                for (FileStatus fileStatus : fileStatuses){
                    if (fileStatus.isDirectory() && matchStr(fileStatus.getPath().getName(), regular)) {
                        list.add(prefixHdfs+":"+mainDir+fileStatus.getPath().getName()+SolrUtil.INDEX_DIR_SUFFIX);
                    }
                }
    
            } catch (IOException e) {
                LOGGER.error("获取hdfs目录信息异常,路径:{},异常信息:{}",luceneFilePathRegular,e.getMessage());
                e.printStackTrace();
            }
            if(list.size()>0){
                LOGGER.info("通过正则匹配到的Solr目录有:");
                for (String s : list) {
                    LOGGER.info(s);
                }
            }else{
                LOGGER.error("路径{}下,不存在满足正则:{}条件的目录", luceneFilePathRegular, regular);
            }
            return  list;
        }
    
        /**
         * @Method Description:按正则表示是匹配字符串
         * @param str
         * @param regular
         * @return
         * @author: libingjie
         */
        public static Boolean matchStr(String str, String regular) {
            Pattern pattern = Pattern.compile(regular);
            Matcher matcher = pattern.matcher(str);
            return matcher.matches();
        }

     

    转载于:https://www.cnblogs.com/yangh2016/p/5892617.html

    展开全文
  • Linux-nginx路径正则匹配

    千次阅读 2019-02-19 10:43:37
    通过正则匹配,alias来忽略地址指向,改为路径指向.来进行路径匹配.将所有aa/bb/**的地址,全部指向index.html  location ~ ^[/][a][a][/][b][b][/]*.*$ {  alias html/aa/cc;  index /dist/template/index....

    前端项目框架前奇百怪,react,vue还有原生

    react面向类开发

    vue面向方法开发,

    原生,多页面开发模式

    127.0.0.1/aa/bb/cc

    作者是写react,当开发react的时候,html页面只有一个,领导要求,我们的域名下面变成127.0.0.1/aa/bb/cc,我们的react-route写完了,本地测试没问题,但是放到服务器上,不行了.直链根本访问不了,nginx根本代理不到这个地方

    因为我们只有一个html,react通过地址识别进行载入,而cc这个指向了一个地址,我们没有这个路径的文件

    所以根本无法指向

    通过正则进行匹配.来解决路径指向问题.

    1、^: 匹配字符串的开始位置;

    2、 $:匹配字符串的结束位置;

    3、.*:   .匹配任意字符,*匹配数量0到正无穷;

    4、\. 斜杠用来转义,\.匹配 .    特殊使用方法,记住记性了;

    5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp

    6、i不区分大小写

    正则表达式匹配,其中:

    代表此处开始使用正则进行匹配

     ~ 为区分大小写匹配
     ~* 为不区分大小写匹配
     !~和!~*分别为区分大小写不匹配及不区分大小写不匹配

    通过正则来匹配,alias来忽略地址指向,改为路径指向.来进行路径匹配.将所有aa/bb/**的地址,全部指向index.html

     location ~ ^[/][a][a][/][b][b][/]*.*$ {
                alias html/aa/cc;
                index /dist/template/index.html;
            
    }


     

     

     

    展开全文
  • windows、linux正则路径

    2009-11-15 16:14:00
    var winpath = /^[a-zA-Z];[///]((?! )(?![^///]*/s+[///])[/w -]+[///])*(?! )(?![^.]+/s+/.)[/w -]+$/; var lnxPath = /^([//] [/w-]+)*$/; 
  • File file=new File("E:\\");//路径 if (file.isFile()&&file.exists()) {//是否存在 InputStreamReader read=new InputStreamReader...请问下怎么用正则表达式提取路径中所有匹配正则的文件并进行后续操作?
  • 正则表达式-linux路径匹配

    千次阅读 2018-10-28 22:13:00
    注:此正则只用于规范linux路径格式。 linux路径支持很多的特殊字符,但是我们应该养成一个好的习惯:只用字母、数字、下划线的组合命名目录或文件。 如何使用正则表达式校验一个linux路径符合我们的格式要求呢? ...
  • linux文件夹路径格式: 正则表达式: /\/([\w\.]+\/?)*/; 可以匹配如下格式: /home/www /home/ / /home
  • Linux正则表达式

    千次阅读 2018-03-06 22:09:32
    在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,...linux正则表达...
  • 是在同一域名内更改获取资源的路径,而location是一对路径做控制访问或反向代理 2.常见的Nginx正则表达式 ^ :匹配输入字符串的起始位置 $ :匹配输入字符串的结束位置 * :匹配前面的字符零次或多次。如“ol*”能...
  • linux 正则表达式

    2019-10-19 15:53:23
    grep “查找内容” profile 显示在...非正则中当作占位符使用 *: 0次到任意次字符 ls -l ./a* 显示当前路径下的出现a加上任意个字符的行 ?: 匹配1个任意字符 ls -l ./a? 显示当前路径下a加上1个任意字符的行 ...
  • 文章目录前言一、grok-patterns二、自定义grok-patterns(正则匹配)1.自定义格式2.组合现有patterns匹配时间3.组合现有patterns匹配中文4.组合现有patterns匹配英文总结 前言 在grok中进行正则匹配,一种是使用...
  • Nginx 正则匹配

    2018-12-11 15:46:00
    Nginx 正则表达式之匹配操作符 过期缓存 针对浏览器 针对文件类型 针对文件夹 判断文件,文件夹 设置某些类型文件的浏览器缓存时间 匹配到所有uri 全局变量 常用正则 Nginx 正则表达式之匹配操作符 ~ 区分大小写...
  • linux正则表达式

    2019-11-02 13:41:22
    一、什么是正则表达式 1、简单的说正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易地完成【查找、删除、替换】某特定字符的处理过程。 1...
  • 场景:要查找的目录结构相似,但是要从...命令解释:查找/var/muses下,以tm_打头的目录,中log目录中所有文件去匹配 find /var/muses/ -regex '/var/muses/tm_.*/log/.*' -mtime -1 -name "*?log*" 感谢指点:原文地址
  • 以下是个人对正则匹配、爬虫的一点学习心得,分享给大家,相互学习,有错误请指出,谢谢! 如果用Python写爬虫的话,正则匹配在re包里面,然后一般也需要用到urllib2(网络请求响应),BeautifulSoup(响应内容解析),...
  • 文章目录一、Nginx正则匹配1.正则表达式1.1 概述1.2 常用的的正则表达式符号2.location2.1 分类2.2 常用匹配规则2.3 优先级2.4 示例2.5 匹配规则定义二、rewrite1.概述2.跳转实现3.跳转场景3.执行顺序4.语法与flg...
  • 1、^: 匹配字符串的开始位置; 2、 $:匹配字符串的结束位置;...正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,953
精华内容 16,381
关键字:

linux正则匹配路径

linux 订阅