Linux简单文件的内容(文本)处理
查看文件内容
head、tail
查看前几行 / 查看后几行(默认10行)
// 查看test.txt文件前3行
[root@localhost ~]# head -3 test.txt
//查看test.txt文件后5行
[root@localhost ~]# tail -5 文件名
cat 文件名列表
(可以将多个文件集中显示出来)(-n 加上行号)
// 查看a.txt文件与b.txt文件的内容
[root@localhost ~]# cat a.txt b.txt
//将a.txt与b.txt文件中的内容合并放入c.txt
[root@localhost ~]# cat a.txt b.txt > c.txt
-
more
文件名可以分页展示- 下一行
enter回车
- 下一页
空格
- 上一页
ctrl+b
- 退 出
q
- 下一行
-
less
文件名可以分页显示还可以查询- 可以上下左右键控制。
- 查询
/
- 退出
q
- 显示行号
-N
查找文件中的内容
wc
[选项] 文件名统计文件的内容(默认显示出以下三项内容)
1. 统计行数:-l
2. 统计单词个数:-w
3. 统计字节数:-c
// 查询mk.txt文件的单词数 有的不用加 v.
[root@localhost ~]# v.wc –w mk.txt
- grep [选项]查找条件文件名
(查找满足条件的行,以行为单位进行的查找)- 选项:
-i
忽略大小写
-v
输出不满足查找条件的语句 - 查找条件:
v.“^…”以什么开头
vi.“…$”以什么结尾
“[正则]”包含正则的
- 选项:
// 查询mk.txt文件中有accp2016或accp2017的行
[root@localhost ~]# x.grep –i “201[67]” mk.txt
修改文件内容
将命令展示结果直接导入一个文件。>重定向输出
ls /home >文件名
// 将home文件夹中的所有内容注入到abc.txt文件中
[root@localhost ~]# ls /home > abc.txt
通道过滤。 | col过滤命令(-b过滤特殊符号)
// 将mkdir的帮助文档过滤掉特殊符号后注入到manmkdir.txt中
[root@localhost ~]# man mkdir | col -b > manmkdir.txt
//下面这条命令使用了两个管道,利用第一个管道将cat命令(显示abc.txt文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的
//所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。
[root@localhost ~]# cat abc.txt | grep /bin/bash | wc -l
vi命令修改文件内容
选项:
-R
以只读形式打开vi –R 文件名-r
恢复.swp文件vi –r .文件名(当文件异常关闭时出现的.swp缓存隐藏文件)
四个模式图
-
命令模式:
-
撤销:
u
撤销一次
U
撤销所有 -
删除(剪切):
x
删除一个字母
dw
删除一个词
dd
删除整行
3dd
删除3整行
4dd
删除4整行 -
复制:
yw
复制一个单词
y$
向后复制整行
y^
向前复制整行
yy
复制整行
3yy
复制3整行
4yy
复制4整行 -
粘贴:
p
粘贴到光标后
P
粘贴到光标前 -
查询:
/word
从上向下查
?word
从下向上查
n
定位下一个
N
定位上一个
-
-
末行模式:
- 替换:
当前一行替换第一个:s /old/new
当前一行替换全部:s /old/new/g
全文替换全部:% s/old/new/g
从第5行到第10行替换全部:5,10 s/old/new/g
- 显示行号:
:set nu
展示行号
:set nonu
取消行号 - 保存:
:w
保存
:w /root/newfile
另存为目录 - 退出:
:q!
未修改并退出
:wq
保存修改并退出
- 替换:
-
输入模式:
正常输入 -
视图模式:
-
模式切换:
v 进入视图模式
ctrl+v 进入块视图模式 -
移动:
gg 移动到文件最开头
G 移动到文件最后一行开头
3G 移动到第三行 4G 移动到第四行
home键 移动到当行的开头
end键 移动到当行的结尾 -
操作:
d 删除/剪切
y 复制
-
比对两个文件内容
vimdiff 文件1 文件2
选项:
-o
vimdiff –o 文件1 文件2 竖直两个窗口展示(默认水平两个窗口)
操作:
ctrl+ww 切换两个窗口
【C 选中上一个不同处
】C 选中下一个不同处
dp 向右/下覆盖不同处。
do 向左/上覆盖不同处
:wqa! 保存全部修改
:qa! 不保存全部修改