Linux下的文本处理包含三剑客

vim 文本编辑器
分三种模式:1命令模式:yy复制,dd剪切,p粘贴,uu还原为命令前的文本 gg回到行首 G回到行尾 /+内容,可进行查找 set nu 带行号
2插入模式:a i o 进入编辑
3末行模式:输入:wq! 强制保存退出

grep:行级过滤
grep -v:取反,匹配到的不显示:例空格: /^$/
-c:统计匹配到的行数
-n:匹配到的行带行号
-i:不区分大小写

tee:中转结果到目标文件
一般与cat和grep连用:例:cat /etc/passwd | grep root | tee test(该文件必须存在)

sed:流编辑器:一般处理大文件,是一种非交互式文本编辑器,默认不修改原文件
原理:一行一行处理,从文件第一行开始读取,放到模式空间中,进行相应处理,处理完毕将结果
输出到屏幕上,然后继续读取下一行,知道所有行都处理完毕
用法:sed [选项] [定址/定界+处理动作] 文件列表
选项:-n :显示处理结果,一般与p连用
-e :进行多项编辑,对同一行做多次处理,可做多点编辑
-f :sed脚本:指定运行的sed脚本
-r :允许使用扩展正则,主要支持posix用法
-i :直接修改原文件
定址/定界:
1 表示处理第一行
$ 表示处理最后一行
1,5 处理第一行至第五行
/正则/: /^root/ 处理以root开头的行
/正则/,/正则/ 多个正则以,隔开
命令:d:删除 例:sed ‘/ : x : /d’ /etc/passwd 删除带 : x : 的行
p:打印 例:sed -n ‘3,5p’ /etc/passwd 打印第三行和第五行
!:非 例:sed ‘3!d’ /etc/passwd 打印第三行(除了第三行,其他全部删除)
r:读取外部一个文件
例: sed '/^root/r /test/a /test/b 在b文件中root开头的行下面添加a文件的内容
w:将匹配到的内容,保存到外部的一个文件中
例:sed ‘/^root/w /etc/passwd’ /test/a 把passwd文件中root开头的行保存到a文件中(覆盖原文件)
a:追加,在匹配到的行的下一行插入一行
例:sed ‘/root/a hello root’ /etc/passwd 在passwd文件中root下一行追加一行hello root
i:插入,在匹配到的行的上一行插入一行
c:替换,将匹配到的内容替换成新的内容
例:sed ‘/root/c aaa’ /etc/passwd 把root都替换成aaa
q:退出,不再向模式空间读入新的行
例:sed ‘1q’ passwd
s:查找替换 修饰符g:全局替换 p:打印 w:另存为 n:n为数字,替换第n个匹配到的内容
使用:定址s/模式匹配(旧的内容)/新的内容/修饰符
例:sed ‘s/^./ /g’ /etc/passwd 以空白代替没一行的开头字母
模式空间:
保留空间:保留文本行,默认有一个空行
命令:h:将模式空间的内容复制到保留空间——————覆盖模式
H:将模式空间的内容追加到保留空间——————追加模式
g:将保留空间的内容复制到模式空间——————覆盖模式
G:将保留空间的内容追加到模式空间——————追加模式
例:sed ‘1{h;d};2G’ /etc/passwd 交换第一行和第二行;

awk:一种编程语言,文本编辑器
功能:对文本数据进行汇总和处理,是一个报告的主生成器,能够对数据进行排版
工作过程:将文件中的内容逐行进行扫描,把整行内容存入内置变量$0中;在按照指定的分隔符(默认分隔符为空白)将输入
行切成若干个列(字段),在读取下一行,循环处理,指定处理结束
语法:awk [选项] ‘/定址/{处理动作1;处理动作2;…}’ 文件列表
简单使用:awk -F :’{print $1,$3}’ /etc/passwd 打印passwd中用户名和UID
默认awk使用空白来做分隔符,不管有几个空白,都当做一个分隔符,分隔符可做为数字,字母,符号
使用:切IP:ip a s | grep global | awk ‘{print $2}’

	可指定多个分隔符 :/ ’
	复合分隔符 -F “: /”   以:/为分隔符
	多个分隔符:awk  -F  "[: /]"  '{print  $1,$3}'  /etc/passwd   以:/为分割符
	以空白为分隔符:awk  -F  ""    '{print $1,$2}'  /etc/passwd   
    换行符:\n:   head  -l  passwd | awk  '{print "hello\nworld"}' 
    制表符,列对齐更美观\t:awk  -F: '{print  $1"\t"$3}'  passwd

wc:统计行信息
wc -l 文件名:统计有多少行
-c 文件名:统计文件中字符数
-w 文件名:统计文件有多少单词
cut:切割
cut -d:指定分隔符
-f:指定输出区域,多个用逗号隔开
-n:查看有多少行
例:cut -d “:” -f 3 /etc/passwd 按照:切割出passwd文件中第3列的内容
sourt:排序
sourt -r 逆序排序
-n 按照数值大小
-u 去掉重复值
-t 指定分割符“/” “,” 等
-k 指定输出区域
例: sort -t “:” -k 3,5 passwd 以:为分隔符,按照第3,5列进行排序
uniq:去重 去掉相邻的行
uniq -c:统计重复行数
tr 转换字符
-s 把多个重复的字符以单一字符显示
例: tr -s " :" " /" [文件] 把:替换成/
tr -s “[:space:]” “@” [文件] 把空白替换成@

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值