【linux】学习笔记Chap_18_查找pattern
查找工具
find命令
用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名
特性
- 会自动递归查询子目录
语法
1 | find path -option [ -print ] [ -exec -ok command ] {} \; |
选项
name filename, -iname filename
: 文件名称符合 name 的文件。iname 会忽略大小写
#查当前目录下**.c后缀**文件。
Linux中的.c .py只是后缀,和win的格式不同。如文件:test.sh和test都可以是shell脚本
1 | find . -name "*.c" |
- -type c : 文件类型是 c 的文件。
c类型:
- d: 目录
- c: 字型装置文件
- b: 区块装置文件
- p: 具名贮列
- f: 一般文件 touch/vim/cat产出的文件默认为一般文件
- l: 符号连结
- s: socket
更多选项 [icon-url href=“https://www.runoob.com/linux/linux-comm-find.html” target="_blank"]菜鸟[/icon-url]
grep命令
功能:
- 在文章内查找 pattern
g global
re regular expression 正则表达式
p print
用法:
- grep 【something】 【filename】
1 | #File |
grep 重要的选项
- -c count 会显示找出 目标内容出现次数
- -i ignore 忽略大小写
- -n 会显示目标内容所在 行号
1 | grep -in pizza food-costs |
- -l 接收多个文件参数 可以判断目标内容在哪个文件中出现
1 | grep -l hello fi1 fi2 fi3 |
- -L 同小写的l,但判断哪些文件没有出现pattern
grep查找 符合的规则是包含目标内容,但如果 精确查找 用-w
- -w 精确查找 如:查now 会忽略know
- -v reverse 反选 只选出不包含目标的段落
- -x 只查找 pattern 独占一行的段落
- -r recursive 查找目前目录 所有子文件 全局查找
1 | 如在wordpress中包含查Please tyep your comment text的文件 |
look命令
功能
- 只能查找全部的以 pattern开头的行
用法
- look 【选项】【filename】
特性
- 查找的内容要是按字母表****排序好的文件
- 不能从标准输入接收数据
- 不能用pipeline 接收数据
- look 查找的方法是二分查找
选项
- -f fold 表示不区分大小写
sort命令
用法
- sort [-dfbru] [-o outfile] infile
选项
- -o 保存到文件中 sort file_in > outfile 可以实现保存的功能,但不能保存到同文件中
- -o可以实现保存到同名文件
1 | sort -o names names |
sort 支持同时排序多个文件并保存到一个文件中
1 | sort oldfile file newfile > resfile |
- -d 只排文字 数字 和空格
- -f fold 不会区分大小写
- -n numeric 会将不按字符串排序 而按照数字大小排序
1 | #File |
- -r reverse 将内容倒序(按字符串)
- -rn 就按数大小 而且倒序排
- -u unique 排序时 将重复内容只保留一个
1 | #File |
- -c check 检测文件是否排序过,不会自动排序,只作检测
如果有序的 将无输出(no news is good news)
如果无序的 会提示开始混乱的位置
1 | sort: test:2: disorder: 1 |
uniq命令
功能
- 消除重复的,对重复行进行计数,输入的文件必须已经排序好的
用法
- uniq [-cdu] [infile [outfile]]
选项
- -d 只保留重复的行
- -u 只保留不重复的行
- -c 输出结果前加序号
1 | sort -u file1 file2 |
join命令
功能
将两个有序文件合并 按值合并
1 | #file1 |
如果file1中有数据不在file2中,则**join不会匹配,**同理file2不在file1的也不会匹配
显示时,只会显示匹配上的
如
1 | file1还有 555 lthero |
1 | join file1 file2 |
但结果和上面一样
如果要看全部内容
1 | 用-a 选项 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 lthero!
评论