系统三剑客-grep
正则查找 grep -v “^#|^$” 不显示注释行和空行
脚本幂等性!!!!
vim network.sh
#!/bin/bash
#修改ip地址,把1.2修改成1.3
sed -i “s#192.168.1.2#192..168.1.3#g” /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i “s#(.*)0(.*)#1102#g” /etc/sysconfig/network-scripts/ifcfg-eth0
#重启 络
systemctl restart network
#获取主机ip地址
echo “服务器地址修改后IP地址:$(hostname -I)” >> /tmp/tip.txt
sed [OPTION]… {script-only-if-no-other-script} [input-file]…
命令 参数 条件-处理 文件
不加-i参数默认值是操作内存中的数据,不修改磁盘中的内容
sed命令实战
查 -n取消默认输出 (模式空间)
sed -n ‘3p’ preson.txt 显示第三行并显示
sed -n ‘1p,3p’ preson.txt 显示一行到三行
sed -n ‘1p;3p’ preson.txt 显示一行和三行
sed -n ‘/odlboy/p’ preson.txt 查看含有odlboy并输出p
sed -n ‘/odlboy/,/alx/p’ preson.txt 查看含有odlboy到alx
添加
sed -i ‘1i100,oldg,CEO’ preson.txt 在首行插入
sed -i ‘$a100,oldg,CEO’ preson.txt 在文件的末尾添加
sed -e ‘/odlboy/iodlg -e /alx/aalxboy’ 多个操作指令,在odlboy前插入odlg,在alx后添加alxboy
sed ‘$a100n102’ 添加多行信息
删除
sed -i ‘3d’ preson.txt 删除第三行
sed -n ‘^$/!p’ 取消空行显示 ‘!取反’
修改信息
sed ‘s#原有内容#修改后内容#g’ preson.txt
sed ‘s/原有内容/修改后内容/g’ preson.txt
sed ‘s#()#n#g’ preson.txt 后项引用后项,n代表第几个小括
sed -i.bak ‘s/原有内容/修改后内容/g’ preson.txt 修改前进行备份
&调用匹配的信息ls file*.txt
ls file*.txt |sed -r ‘s#(.*)txt#mv & 1jpg#gp’|bash
取ip地址
ip a s eth0 |sed -rn ‘3s#^.*net(.*)/24.*#1#gp’
批量专业重命名
rename .jpg .txt file*.jpg
命令 需要修改的 修改后的 原来的
touch file{1..10}.txt 批量创建
p print 输出信息
i insert 插入信息在指定行
a append 附加信息在指定行
d delete 删除指定行
s substitute 替换 s###g(g全局替换)
c 替换修改一整行的内容
总结:sed参数信息
-n 取消默认输出
-r 识别扩展正则
-i 将内存中的 信息覆盖到磁盘中
-e 识别sed命令多个操作指令
说明:-ni同时用,会把文件清空
系统三剑客-awk
作用特点:1.排除信息 2.查询信息 3.统计信息 4.替换信息
语法格式:awk ‘{pattern + action}’ {filenames}
命令 参数 模式-动作 文件
查
例子: zhang san 1234567 :100:160:170
awk ‘NR==2,NR==4’ test.txt 查看第二行到第四行
awk ‘NR==2;NR==4’ test.txt 查看第二行和第四行
awk ‘/odlboy/’ test.txt 按字符查找
awk ‘/odlboy/{print $1,$3}’ test.txt 显示第一列和第三列信息
awk ‘/odlboy/{print $NF}’ test.txt 倒数第一列(NF-1倒数第二列)
awk -F ‘:'{print $2} test.txt 自定义分割,以冒 为分割
awk -F “:” ‘/^zhang/{print $3}’ test.txt :100:160:170 取160
awk -F “[ :]+” ‘/^zhang/{print $1,$2,$(NF-1)}’ test.txt 匹配 zhang san 160
awk ‘$3~/^123/{print}’ test.txt 匹配第三列以123开头的$
awk ‘$3~/7$|5$/{print}’ test.txt 匹配第三列5或7结尾的(5|7)$或[57]$
gsub(/需要替换的信息/,替换成什么,对哪列进行操作) 替换
awk ‘$3~/^123/{gsub(/:/,”$”,$N)F;print}’ test.txt $100$160$170 把:替换成$
awk高级功能
a)对日志信息进行统计计数,上传下载 消耗 络流量
b)数组进行排序分析
普通模式
NR==2
NR>=2
NR 特殊模式
BEGIN{} 在awk执行前干什么
awk BEGIN{FS=”:”}{print} == awk -F “:” == -vFS=”:”
awk ‘BEGIN{print “姓”,”名”,”qq”,”捐款记录”}$2~/[sw]/{print}’ test.txt |column -t
column -t 表格格式输出
END{} 在awk结束后干什么
awk “/^#/{i=i+1;print i}” /etc/yum.conf 统计井 开头的行数
awk ‘$NF~/bash/{i=i+1}END{print i}’ /etc/passwd 统计普通用户的数量
sum=sum+$1 第一列求和
awk -F ‘:’ ‘$2~/[sw]/{sum=sum+$4}END{print sum}’ test.txt
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24694 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!