1.文件内容统计的命令
wc
wc 文件名 //统计文件内容的信息 行数 单词数 字符数
例:
wc test.txt
2 3 17 test.txt
| | |
行数 单词数 字符数
wc -l 文件名 //统计文件的行数
wc -w 文件名 //统计文件的单词数
wc -c 文件名 //统计文件的字符数
wc -l *.c //统计当前目录下所有.c结尾的文件的行数 这里的*是一个通配符
35 maopao_function.c
33 strcat_function.c
37 strcmp_function.c
28 strcpy_function.c
22 strlen_function.c
155 总用量
2.检索文件内容的命令 -- grep
grep "string" 文件名 //在文件中查找包含string的行
grep -n "string" 文件名 //在文件中查找包含string的行(带行号显示)
grep -i "string" 文件名 //在文件中查找包含string的行(不区分大小写)
grep -v "string" 文件名 //在文件中查找不包含string的行
grep -w "string" 文件名 //精确查找,string有前缀或者后缀都不行
常用的用法:
grep "world" * -nR //查找当前目录及子目录下所有文件中包含world的行
grep "^string" 文件名 //查找文件中以string开头的行
grep "string$" 文件名 //查找文件中以string结尾的行
grep "^string$" 文件名 //查找文件中只有string的行
3.查找文件的命令 find
根据名字查找:
//查找当前路径及其子目录下所有的名字为test.txt的文件
find ./ -name test.txt
//查找上上级目录及其子目录下所有的名字为test.txt的文件
find ../../ -name test.txt
//如果不加路径 默认是当前路径
find -name test.txt
根据类型查找:bsp-lcd
//查找当前路径及其子目录下所有类型为 普通文件 的文件
find ./ -type f
//查找当前路径及其子目录下所有类型为 目录文件 的文件
find ./ -type d
注意:
1.查找当前路径下所有 .c 结尾的文件
不能简单的使用 find ./ -name *.c
原因是:命令会先将 *.c 取到 然后都放到 -name 的后面,导致find命令参数错误
正确的用法是 find ./ -type f |grep ".c$"
2.一种常用的用法:
find ./ -type f |xargs grep -n "string" --color=auto
//查找当前目录及其子目录下所有包含“main”的文件 --color=auto 自动高亮
4.文件内容截取的命令 cut
cut命令(是以行为单位处理的,只处理有指定分隔符的行)
-d : 分隔符
-f : 域
例如:
test.txt ==> 111:222:333:444:555:666
cut -d : -f 1 test.txt //111
cut -d : -f 3 test.txt //333
cut -d : -f 1,2,3 test.txt //111:222:333
cut -d \" -f test.txt //如果分隔符是引号 需要加转译字符
练习1:
/etc/passwd 文件里存储的是 当前系统中用户的信息
stu : x : 1000: 1000: stu,,,: /home/stu: /bin/bash
用户名 是否有密码 用户ID 组ID 登录提示信息 家目录 默认解释器
显示一下当前用户的用户id和组id
--要求只输出 1000:1000
tail -n 6 /etc/passwd |head -n 1 |cut -d : -f 3,4
练习2:
将用户信息文件中 当前用户所在的行显示出来
--要求结果 只有一个行号 30
cat /etc/passwd |cut -d : -f 1 |grep -n "^stu$" |cut -d : -f 1