一、 统计
wc (word count)统计文件内容
:wc [选项] 目标文件
| 选项 | 效果 |
|---|---|
| -l | 统计行数 |
| -w | 统计单词个数 |
| -c | 统计字节数 |
| 什么也不加 | lwc三个选项全显示 |
wc统计的不是真正的单词个数,空格、隐藏字符等也会算在其中(tab键、空格 算单词的分隔符,其余都不算)
wc可以接收标准输出然后进行统计
- 标准输入:你用键盘输入发信息叫标准输入
- 标准输出:电脑反馈给你正确的信息叫标准输出
- 错误输出:电脑反馈给你非正确的信息叫错误输出
二、 过滤
grep 检索和过滤文件内容
非常重要!!! 文本三剑客(grep、awk、sed) 之一,用来过滤文本中你感兴趣的内容
: grep [选项]... 匹配式/表达式 [文件名]或标准输入 ( 匹配式不能放在文件后面!)
| 选项 | 效果 |
|---|---|
| -i | 忽略大小写 |
| -v | 反向匹配 ,输出与查找条件相反的行 |
| -n | 显示行号 |
| -o | 只显示匹配的内容 |
| -r | 递归匹配 (后面可以跟文件夹) |
| -w | 只匹配单词 |
| -f | 以文件作为匹配的条件 (过滤两个文件中重合的部分) |
正则表达式:匹配文章里的内容(字符串),一般与grep搭配使用 【通配符用来匹配文件名字,一般与ls 、 find搭配使用】
- 正则表达式可用来表示字符的次数
- 表示位置
^ : 表示以什么字符开头 (开头就写在最开头)
$ : 表示以什么字符结尾 (结尾就写最后)
^$ :表示空行
^root$ : 表示这一行只有root四个字符
```举例
grep “^$” //过滤空行
grep -v “^$” //过滤非空行
grep -v “^#” //过滤不是以#号开头的行
```面试题
问法1:有海量数据,这些海量数据在文件里面,想从这些文件里面找到特定字符
问法2:有一个文件夹叫/etc/ ,想快速过滤出/etc/下所有包含root字符串的文件
错误写法:grep root /etc 错误原因:root 后面不能跟文件夹
正确写法:grep -r root /etc 加了-r后可以跟文件夹
三、 合并与拆分
1. paste 合并文件
: paste [选项] 文件名...
| 选项 | 效果 |
|---|---|
| -d | 指定分割符 |
怎样合并A和B两个文件?
-
上下合并 : cat 文件名a 文件名b > 新文件名
-
左右合并 : paste 文件名a 文件名b
合并后想要永久保存需要重定向
- 标准输出重定向:本来输出在屏幕上的内容,改变了输出方向,输出到了文件中
2. split 拆分文件
命令格式 : split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]
-b<字节>:指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。
-<行数>或-l<行数>:指定每多少行要拆分成一个文件。 输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
-a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。
四、 压缩与解压缩
bzip2 、 gzip不能压缩文件夹,只能压缩单个文件
1. bzip2 、 gzip
- 制作压缩文件
gzip [-9] 文件名… (9代表压缩比率,9最大1最小)
bzip2 [-9] 文件名...
gzip的压缩率 要高于bzip2
- 解开压缩文件
gzip -d .gz格式的压缩文件 ( d就是解压 )
bzip2 -d .bz2格式的压缩文件
2. tar 归档
可以压缩文件夹
: tar [选项] 自定义压缩包名字 要压缩的文件
| 选项 | 效果 |
|---|---|
| -c | 建立归档文件 |
| -f | 代表使用归档 只要使用tar命令必须要加!加了- f必须放在最后,否则无法执行;不加- 选项随便。所以!建议直接写 tar f ,不要加- |
| -x | 解压缩 |
| -C (大写) | 指定解压的文件夹 |
| -j | 调用bzip2压缩 |
| -z | 调用gzip压缩 |
| -v | 显示过程,解压和压缩 |
| -t | 不解包的情况下查看里面的文件列表 |
解压命令:tar xf 压缩包名字 -C 指定解压目录 ( 解压的时候不用指定gzip/bzip ,f写在后面 )
3. 6. zip 、 unzip(了解,市场环境中不推荐)
zip可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性,一般用tar代替