
【linux】学习笔记Chap_18_查找pattern
查找工具
find命令
用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名
特性
- 会自动递归查询子目录
语法
find path -option [ -print ] [ -exec -ok command ] {} \;选项
name filename, -iname filename: 文件名称符合 name 的文件。iname 会忽略大小写
#查当前目录下**.c后缀**文件。
Linux中的.c .py只是后缀,和win的格式不同。如文件:test.sh和test都可以是shell脚本
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】
#File
#time name age
#12 lthero 40
#6 lili 35
#6 wawa 20
#11 jaja 33
grep lili file
#输出
6 lili 35grep 重要的选项
- -c count 会显示找出 目标内容出现次数
- -i ignore 忽略大小写
- -n 会显示目标内容所在 行号
grep -in pizza food-costs
1:pizza $2
2:Pizza $3
4:PIZZA $5- -l 接收多个文件参数 可以判断目标内容在哪个文件中出现
grep -l hello fi1 fi2 fi3
fi1- -L 同小写的l,但判断哪些文件没有出现pattern
grep查找 符合的规则是包含目标内容,但如果 精确查找 用-w
- -w 精确查找 如:查now 会忽略know
- -v reverse 反选 只选出不包含目标的段落
- -x 只查找 pattern 独占一行的段落
- -r recursive 查找目前目录 所有子文件 全局查找
如在wordpress中包含查Please tyep your comment text的文件
grep -ir "Please tyep your comment text" www/wordpresslook命令
功能
- 只能查找全部的以 pattern开头的行
用法
- look 【选项】【filename】
特性
- 查找的内容要是按字母表****排序好的文件
- 不能从标准输入接收数据
- 不能用pipeline 接收数据
- look 查找的方法是二分查找
选项
- -f fold 表示不区分大小写
sort命令
用法
- sort [-dfbru] [-o outfile] infile
选项
- -o 保存到文件中 sort file_in > outfile 可以实现保存的功能,但不能保存到同文件中
- -o可以实现保存到同名文件
sort -o names namessort 支持同时排序多个文件并保存到一个文件中
sort oldfile file newfile > resfile
sort -o newfile oldfile file newfile #可以保存到同名文件中- -d 只排文字 数字 和空格
- -f fold 不会区分大小写
- -n numeric 会将不按字符串排序 而按照数字大小排序
#File
11
2
1
20
10
sort File
1
10
11
2
20
sort -n File
1
2
10
11
20- -r reverse 将内容倒序(按字符串)
- -rn 就按数大小 而且倒序排
- -u unique 排序时 将重复内容只保留一个
#File
1
1
5
4
4
4
sort -u File
1
2
4
5- -c check 检测文件是否排序过,不会自动排序,只作检测
如果有序的 将无输出(no news is good news)
如果无序的 会提示开始混乱的位置
sort: test:2: disorder: 1
2:第二行 1:内容是1uniq命令
功能
- 消除重复的,对重复行进行计数,输入的文件必须已经排序好的
用法
- uniq [-cdu] [infile [outfile]]
选项
- -d 只保留重复的行
- -u 只保留不重复的行
- -c 输出结果前加序号
sort -u file1 file2
sort file1 file2 | uniq 效果一样join命令
功能
将两个有序文件合并 按值合并
#file1
111 hug Man
222 Ste Pen
333 Mick Stu
444 Mel Col
#file2
111 10011
222 20022
333 30033
444 40044
join file1 file2
#输出
111 Hug Mun 10011
222 Ste Pen 20022
333 Mick Stu 30033
444 Mel Col 40044如果file1中有数据不在file2中,则**join不会匹配,**同理file2不在file1的也不会匹配
显示时,只会显示匹配上的
如
file1还有 555 lthero
file2 有 666 66666join file1 file2但结果和上面一样
如果要看全部内容
用-a 选项
join -a1 file1 file2 会显示file1全部内容,并将匹配的内容也显示
join -a2 file1 file2 显示file2全部内容 和匹配的内容
join -a1 -a2就是和默认显示方式一样,只显示匹配内容 不能用-a1 -a2 或 -a12
-v reverse 反转
join -v1 file1 file2 显示 file1中 没有匹配的
join -v1 -v2 file1 file2 全部没有匹配的
-i 不会区分大小写- 文章作者:
- Lthero博客
- 版权声明:
- 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。转载请注明来自 Lthero博客!





