sift 預設跟 grep 非常類似,都是要搜尋檔案內容使用的
- sift 'keyword' filename # 等於 grep 'keyword' filename
- sift 'keyword' * # 等於 grep 'keyword'
sift:可取代 grep 的快速強大工具程式
sift 號稱速度比較快,此篇是 sift 自己寫的數據:Performance
- 註:我測試的結果,檔案若太少、或者層數太少,還是 grep 比較快,但是 sift 內建一些功能,Ex: GroupByFile、BinarySkip 等等的,排版會比較好看又快速。
sift 的網站 / GitHub 可見:
- 官網:sift - a fast and powerful alternative to grep:grep on steroids
- GitHub - svent/sift: A fast and powerful alternative to grep
- sift 的操作文件:Documentation
sift 安裝
- 於此頁面下載 Download
- cd /tmp
- wget https://sift-tool.org/downloads/sift/sift_0.9.0_linux_amd64.tar.gz
- tar xvf sift_0.9.0_linux_amd64.tar.gz
- mv /tmp/sift_0.9.0_linux_amd64/sift /usr/bin/sift
- 再來就可以直接操作 sift 囉~
sift 設定
- sift -i -n --binary-skip --git --write-config # 初始化 init 設定檔
- vim ~/.sift.conf # 修改下述幾個參數
{
"BinarySkip": true,
"Git": true,
"GroupByFile": true,
"IgnoreCase": true
}- 註:GroupByFile: 在預設設定有,改成 true,可以將找到的資料排版,比較漂亮
sift 進階的參數範例可見:Samples,下述取自此篇:
- -x, -X : Filter by file extension
- sift -x html pattern # 只找 HTML
- sift -X css,js pattern # 排除 css / js
- -t, -T : Filter by file type
- sift -t perl pattern # 只找 Perl (.pl, .pm, .pod, .t or a perl shebang on the first line)
- sift -T html,xml pattern # 排除 html / xml
- --path, --exclude-path : Filter by full path
- sift --path '2015-03-dd/.' pattern # 只找 March 2015 路徑下的檔案
- sift --exclude-path '2015-03-dd/.' pattern # 排除 March 2015 路徑下的檔案
- --files, --exclude-files : Filter by file name
- sift --files 'crypto.c' pattern # Only search in files matching a classic GLOB pattern:
- sift --exclude-files 'crypto.c' # pattern Exclude files matching a classic GLOB pattern:
- --dirs, --exclude-dirs : restrict recursion to specific directories
- sift --dirs 'src' # Only recurse into 'src' directories:
- sift --exclude-dirs '.git' # Do not recurse into '.git' directories: