Home

Awesome

Find File

Find File or text in file with go language.


Source Find File


How to Compile it

Compile those files from different platforms

Requirements

Compiling to Linux

$ env GOOS=linux GOARCH=arm GOARM=7 go build -o ff main.go

Compiling to MAcOSX

$ env GOOS=darwin GOARCH=386 go build -o ff main.go

Compiling to Windows

$ env GOOS=windows GOARCH=386 go build -o ff.exe main.go

Parameters

Helper:
NAME:    FF - Find Text Or File.
USAGE:   ff [arguments...]
VER:     1.2.0
COMMANDS:
        -exclude-dir:    Exclude dir from reader [default: .bzr,CVS,.git,.hg,.svn] 
        -no-color:       Disable color output [default: false] 
        cis:             Search text case insensitive [default: false] 
        cpu:             Number of CPU you have 4 available [default: 4] 
        d:               Set a specify directory [default: ./] 
        f:               Filter by file name  
        force:           Replace all result without ask. [default: false] 
        reg:             Search by this Regex [default: false] 
        replace:         Replace result to text  
        t:               Text that you are looking for  
        up:              Check update [default: false] 
        ver:             Show the version [default: false] 


Usage

Without parameters will show everything in subfolders.

    $ ff
    [dir] ./g please wait... 
    [dir] admin
    [file] admin/config.dev.ini
    [file] admin/config.ini
    [dir] admin/controller
    [file] admin/controller/AjaxAdminController.php
    [file] admin/controller/AjaxAttributesController.php
    [file] admin/controller/AjaxAuthenticationController.php

	.....

With one parameter will find for text.

	$ ff rodrigo 
    [file] admin/controller/AjaxAdminController.php (lines: 1)
    [7] 	 * @author    Rodrigo Lopes <rodrigo.lopes@fixeads.com> 
    
    [file] admin/controller/AjaxAttributesController.php (lines: 1)
    [7] 	 * @author    Rodrigo Lopes <rodrigo.lopes@fixeads.com> 
    
    [file] admin/controller/AjaxCompaniesController.php (lines: 1)
    [7] 	 * @author Rodrigo Lopes <rodrigo.lopes@fixeds.com> 
    .....

Parameter -f

Parameter -f of file, this parameter you will define the name of file that you should like to filter

	$ ff -f css                                                                                                                                                                                                                   develop  ✭
    [dir] admin/resources/css
    [file] admin/resources/css/adminLogin.css
    [file] admin/resources/css/adminTheme.css
    [file] admin/resources/css/angular-bootstrap-datepicker.css
    [file] admin/resources/css/animate.css
	....

Parameter -t

Parameter -t of text, this text that you will search inside of file.

	$ ff -t rodrigo
    [file] admin/controller/AjaxAdminController.php (lines: 1)
    [7] 	 * @author    Rodrigo Lopes <rodrigo.lopes@fixeads.com> 
    
    [file] admin/controller/AjaxAttributesController.php (lines: 1)
    [7] 	 * @author    Rodrigo Lopes <rodrigo.lopes@fixeads.com> 
    
    [file] admin/controller/AjaxCompaniesController.php (lines: 1)
    [7] 	 * @author Rodrigo Lopes <rodrigo.lopes@fixeds.com> 
    ...

Parameter --cpu

Parameter -cpu, this parameter you will define the number of cpu the program can use.

Normal use:

	$ ff -t log
	ff -t "log"  0.01s user 0.01s system 70% cpu 0.034 total

Four CPU use:

	$ ff -t log -cpu 4
    ff -t "log" -cpu 4  0.01s user 0.01s system *159%* cpu 0.024 total

Parameter -r

With parameter -r as regex will defined that your -t is a regular expression

	$ ff -r -t "(rlopes)|(consectetur)"
	----------------------------------------------------------------------------------------------------
	Path : ./
	Regex: (rlopes)|(consectetur)
	----------------------------------------------------------------------------------------------------
	[File] lookingFor/resources/css/none.txt 
		[1] sit amet, consectetur adipisici
		[4] sit amet, consectetur adipisici
	----------------------------------------------------------------------------------------------------
	[File] lookingFor/resources/css/toastr.css 
		[144] .rlopes { lorem i
	----------------------------------------------------------------------------------------------------
	[File] lookingFor/services.dev.ini 
		[3] omain = ".rlopes.realestat
		[6] = 'http://rlopes.realestat
		[15] = 'http://rlopes.realestat
	----------------------------------------------------------------------------------------------------

Parameter Combination

you can match both of the parameters as -t and -f to create more complex search

	$ ff -t "rlopes" -f ini
	----------------------------------------------------------------------------------------------------
	Path : ./
	File : ini
	Text : rlopes
	----------------------------------------------------------------------------------------------------
	[File] lookingFor/services.dev.ini 
		[3] omain = ".rlopes.realestat
		[6] = 'http://rlopes.realestat
		[15] = 'http://rlopes.realestat
	----------------------------------------------------------------------------------------------------

Parameter -d

The -d parameter will active the debug mode, you can see the time of searching (more things coming soon)

	$ ff -t "rlopes" -f ini -d
	----------------------------------------------------------------------------------------------------
	Path : ./
	File : ini
	Text : rlopes
	----------------------------------------------------------------------------------------------------
	[File] lookingFor/services.dev.ini 
		[3] omain = ".rlopes.realestat
		[6] = 'http://rlopes.realestat
		[15] = 'http://rlopes.realestat
	----------------------------------------------------------------------------------------------------
	final Execution took 2.031182ms

Parameter -v

Show the version of application

    $ ff -version                                                                                                                                                master  ✭
    ----------------------------------------------------------------------------------------------------
            This program has written by Rodrigo Lopes <dev.rodrigo.lopes@gmail.com>.
            Only for academic purposes
    ----------------------------------------------------------------------------------------------------
      Version : 1.1.2
      Language: GO Language
      License : ISC
      Project : https://github.com/rodkranz/ff
      Contact : dev.rodrigo.lopes@gmail.com
    ----------------------------------------------------------------------------------------------------

Parameter -h

Show the helper and parameters available


Parameter -update

Check if exist an update available of sistem.


Time Execution

The all tests was made in the same computer the folder has 1434 files


The ff running looking for word rlopes

	$ time ff -t rlopes
	----------------------------------------------------------------------------------------------------
	Path : ./
	Text : rlopes
	----------------------------------------------------------------------------------------------------
	[File] resources/css/toastr.css 
		[144] .rlopes { lorem i
	----------------------------------------------------------------------------------------------------
	[File] services.dev.ini 
		[3] omain = ".rlopes.realestat
		[6] = 'http://rlopes.realestat
		[15] = 'http://rlopes.realestat
	----------------------------------------------------------------------------------------------------
	ff rlopes  0,55s user 0,04s system 75% cpu 0,199 total

The ack running looking for word rlopes

	$ time ack rlopes
	resources/css/toastr.css
	144:.rlopes { lorem ipsum }

	services.dev.ini
	3:domain = ".rlopes.realestateid.fixe"
	6:baseUri        = 'http://rlopes.realestateid.fixe'
	15:baseUri        = 'http://rlopes.realestateid.fixe'
    ack rlopes  0,29s user 0,03s system 99% cpu 0,322 total

The grep running looking for word rlopes

    $ time grep -i -r 'rlopes' ./*                                                                                                                                                                                            master  ✗ ✭
    ./jaws/jaws/configuration.dev.ini:site_url    = "http://rlopes.realestateid.fixe"
    ./jaws/jaws/configuration.dev.ini:base_uri    = "rlopes.realestateid.fixe/pixelandia/"
    ./jaws/jaws/services.dev.ini:domain = ".rlopes.realestateid.fixe"
    ./jaws/jaws/services.dev.ini:baseUri        = 'http://rlopes.realestateid.fixe'
    ./jaws/jaws/services.dev.ini:baseUri        = 'http://rlopes.realestateid.fixe'
    ./jaws/jaws/modules_customization/crm/config.dev.ini:base_uri = "http://rlopes.realestateid.fixe/images/"
    ./jaws/jaws/realestate/service/attribute/AttributeService.php: * User: rlopes
    grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn} -i -r 'rlopes' ./  4,26s user 0,05s system 99% cpu 4,328 total