眼前多少难甘事,自古男儿当自强。这篇文章主要讲述Linux之ack命令相关的知识,希望能为你提供帮助。
ack命令安装
>
yum install -y ack
命令特点
- 默认搜索当前工作目录
- 默认递归搜索子目录
- 忽略元数据目录,比如
.svn,.git,CSV
等目录 - 忽略二进制文件(比如pdf,image,coredumps)和备份文件(比如
foo~,*.swp
) - 在搜索结果中打印行号,有助于找到目标代码
- 能搜索特定文件类型(比如
Perl,C++,Makefile
),该文件类型可以有多种文件后缀 - 高亮搜索结果
- 支持Perl的高级正则表达式,比grep所使用GNU正则表达式更有表现力。
- -n, 显示行号
- -l/L, 显示匹配/不匹配的文件名
- -c, 统计次数
- -v, invert match
- -w, 词匹配
- -i, 忽略大小写
- -f, 只显示文件名,不进行搜索.
- -h, 不显示名称
- -v, 显示不匹配
>
ack -w eat
搜索有特殊字符的字符串’$path=.’,所有的元字符(比如’$,’.)需要在字面上被匹配:
>
ack -Q $path=. /etc
除了temp目录,在所有目录搜索
use
单词>
ack use --ignore-dir=temp
只搜索包含main单词的
python
文件,然后通过文件名把搜索结果整合在一起,打印每个文件对应的搜索结果>
ack--python--group -w main
文章图片
ack支持的文件类型
>
ack --help-types--[no]actionscript .as .mxml
--[no]ada.ada .adb .ads
--[no]asm.asm .s
--[no]asp.asp
--[no]aspx.master .ascx .asmx .aspx .svc
--[no]batch.bat .cmd
--[no]cc.c .h .xs
--[no]cfmx.cfc .cfm .cfml
--[no]clojure.clj .cljs .edn .cljc
--[no]cmakeCMakeLists.txt;
.cmake
--[no]coffeescript .coffee
--[no]cpp.cpp .cc .cxx .m .hpp .hh .h .hxx
--[no]csharp.cs
--[no]css.css
--[no]dart.dart
--[no]delphi.pas .int .dfm .nfm .dof .dpk .dproj .groupproj .bdsgroup .bdsproj
--[no]elisp.el
--[no]elixir.ex .exs
--[no]erlang.erl .hrl
--[no]fortran.f .f77 .f90 .f95 .f03 .for .ftn .fpp
--[no]go.go
--[no]groovy.groovy .gtmpl .gpp .grunit .gradle
--[no]gsp.gsp
--[no]haskell.hs .lhs
--[no]hh.h
--[no]hpp.hpp .hh .h .hxx
--[no]html.htm .html .xhtml
--[no]jade.jade
--[no]java.java .properties
--[no]js.js
--[no]json.json
--[no]jsp.jsp .jspx .jspf .jhtm .jhtml
--[no]kotlin.kt .kts
--[no]less.less
--[no]lisp.lisp .lsp
--[no]lua.lua;
first line matches /^#!.*\\blua(jit)?/
--[no]make.mk;
.mak;
makefile;
Makefile;
Makefile.Debug;
Makefile.Release
--[no]matlab.m
--[no]objc.m .h
--[no]objcpp.mm .h
--[no]ocaml.ml .mli .mll .mly
--[no]parrot.pir .pasm .pmc .ops .pod .pg .tg
--[no]perl.pl .pm .pod .t .psgi;
first line matches /^#!.*\\bperl/
--[no]perltest.t
--[no]php.php .phpt .php3 .php4 .php5 .phtml;
first line matches /^#!.*\\bphp/
--[no]plone.pt .cpt .metadata .cpy .py
--[no]python.py;
first line matches /^#!.*\\bpython/
--[no]rakeRakefile
--[no]rr.R
--[no]rst.rst
--[no]ruby.rb .rhtml .rjs .rxml .erb .rake .spec;
Rakefile;
first line matches /^#!.*\\bruby/
--[no]rust.rs
--[no]sass.sass .scss
--[no]scala.scala
--[no]scheme.scm .ss
--[no]shell.sh .bash .csh .tcsh .ksh .zsh .fish;
first line matches /^#!.*\\b(?:ba|t?c|k|z|fi)?sh\\b/
--[no]smalltalk.st
--[no]smarty.tpl
--[no]sql.sql .ctl
--[no]stylus.styl
--[no]swift.swift;
first line matches /^#!.*\\bswift/
--[no]tcl.tcl .itcl .itk
--[no]tex.tex .cls .sty
--[no]ts.ts .tsx
--[no]tt.tt .tt2 .ttml
--[no]vb.bas .cls .frm .ctl .vb .resx
--[no]verilog.v .vh .sv
--[no]vhdl.vhd .vhdl
--[no]vim.vim
--[no]xml.xml .dtd .xsd .xsl .xslt .ent .wsdl;
first line matches /<
[?]xml/
--[no]yaml.yaml .yml
获取包含
CFLAG
关键字的Makefile的文件名>
ack --make CFLAG
ack
查找my.cnf
文件>
ack -f /etc/ | ack my.cnf
//或者
>
ack -g my.cnf /etc/
原文链接:https://rumenz.com/rumenbiji/linux-ack.html
微信公众号:入门小站
- 回复【1001】获取 linux常用命令速查手册
- 回复【10010】获取 阿里云ECS运维Linux系统诊断
- 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
- 回复【10013】获取 shell简明教程
文章图片
推荐阅读
- ROS2初学者教程(Dashing和Eloquent)Windows
- 手把手教你美化微软的新终端Windows Terminal
- Windows 64位+Nginx1.8.1 配置SSL实现HTTPS访问
- 简单介绍oracle重置序列的方法
- ?? 学会编程入门必备 C# 最基础知识介绍—— C# 高级文件操作(文本文件的读写二进制文件的读写Windows 文件系统的操作)
- 想在树莓派上跑TDengine(没问题!TDengine已支持ARM64位处理器)
- #yyds干货盘点#如何解决kvm虚拟机内部ping 不通百度
- 关于 Linux Polkit 权限提升漏洞(CVE-2021-4034)的修复方法
- #yyds干货盘点# 解决华为机试(字符串通配符)