zoukankan      html  css  js  c++  java
  • 小工具:FQL 转

    http://blog.dccmx.com/2011/08/fql/

    小工具:FQL

    常在Linux下工作,偶尔要找些文件,面对find工具的各种参数,只是偶尔用一下的我表示鸭梨很大。每次都要man或者google,伤不起啊。

    好吧,我怒了,不能忍,于是我决定写个工具,用sql语句来操作文件,名字就山寨一点,叫fql(File Query Language)吧。技术上用了ragel做词法分析,lemon做语法分析。

    项目托管在http://code.google.com/p/fql

    稍微介绍一下。

    这个小工具把所有的文件夹当做一张表,文件的属性如名称、大小、修改时间等作为列。每个文件就是一行。

    于是可以这样:select name,size from /usr/local/bin where size>10k and time>=’2011-8-8′.你懂的。

    不过为了与’ls -al’保持一致,这里’*'并不是表示所有列,而是表示’权限、用户名、组名、大小、修改日期、文件名’的缩写。

    于是有这样的效果:

    1
    2
    3
    4
    5
    dccmx@~/projects/fql$ ./fql "select * where size > 4.1k and size < 100k"
    -rw-r--r-- dccmx dccmx 12.8K 2011-08-02 08:38:03 lexer-rl.cc
    -rw-r--r-- dccmx dccmx 19.9K 2011-08-01 10:40:35 parser.out
    -rw-r--r-- dccmx dccmx 41.3K 2011-08-02 08:38:53 parser.cc
    -rw-r--r-- dccmx dccmx  5.6K 2011-08-02 16:03:54 variant.h


    还有这样的效果:

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dccmx@~/projects/fql$ ./fql "select inode,* where name like '.*\.cc'"
    265734 -rw-r--r-- 1 dccmx dccmx  2.3K 2011-08-09 02:51:46 expr.cc
    265562 -rw-r--r-- 1 dccmx dccmx   665 2011-08-01 08:35:04 lexer.cc
    265561 -rw-r--r-- 1 dccmx dccmx 13.6K 2011-08-09 06:58:48 lexer-rl.cc
    265651 -rw-r--r-- 1 dccmx dccmx  2.2K 2011-08-09 07:00:15 sys.cc
    265783 -rw-r--r-- 1 dccmx dccmx  1.4K 2011-08-02 08:38:03 fql.cc
    265731 -rw-r--r-- 1 dccmx dccmx  2.8K 2011-08-09 06:53:31 table.cc
    265750 -rw-r--r-- 1 dccmx dccmx 41.7K 2011-08-09 06:58:48 parser.cc
    265559 -rw-r--r-- 1 dccmx dccmx   912 2011-08-02 16:37:22 ast.cc
    265785 -rw-r--r-- 1 dccmx dccmx  4.2K 2011-08-09 06:58:46 variant.cc

    对于多文件夹的select,我还没有想好是做联合查询还是简单的同时查询多个文件夹,因为文件夹与文件夹之间没什么关联,感觉联合查询没什么用。

    由于还没有完全测试,加上还有些功能没实现,所依没放到download里面,需要从svn里签出来编译。等全搞定之后,就可以抛弃find了,神清气爽啊。

    相关文章:

  • 相关阅读:
    杭电 oj2602~(0-1背包问题)
    杭电oj~1005 简单的找周期
    poj 2524~并查集基础
    poj 1611~并查集基础
    poj1182~食物链~带权并查集
    杭电 oj3047~带权并查集
    杭电 oj1232~并查集
    杭电 oj2033~
    VS2013使用过程中出现的一些问题:
    python学习笔记:
  • 原文地址:https://www.cnblogs.com/lexus/p/2247500.html
Copyright © 2011-2022 走看看