IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux中shell文本处理工具 -> 正文阅读

[系统运维]linux中shell文本处理工具

前言


一、grep命令

1.grep命令介绍

grep命令是文本搜索命令,它可以正则表达式搜索文本,也可从一个文件中的内容作为搜索关键字。

参数作用
-E等同于egrep
-i忽略大小写进行搜索
-<数字>显示过滤出来的结果上边即行和下边几行
-n显示行号
-B显示过滤上边几行
-v反向过滤要过滤的内容
-A显示要求内容的下几行
-d制定查找的是目录而非是文件
-e指定文本样式进行查找是的其可以按照字符串查找样式
-f指定规则文件规则文件中含有多个指定内容进行查找同时使得其可以进行匹配

命令练习输出能够被su切换的用户名称

cut -d : -f 1,6-7 /etc/passwd | grep "bash$" | cut -d : -f 1 

二、sed命令

1.sed命令参数解释

参数作用
-i直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-e告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-n取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
-f指定文件

对字符的处理命令

p显示
c替换指定内容
d删出指定内容
a添加内容
i将内容插入
w将符合的行写入
r整合内容
sed -n '5-6p' /etc/yum.repos.d/rhel8.2.repo					#显示第5到6行内容
sed -n '6p,8p' /etc/yum.repo.d/rhel.8.2.repo				#显示第6行和第8行
sed -i '/^enable/c enable=0' /etc/yum.repos.d/rhel8.2.repo	#更改文件内容并且固定内容 
sed '2s : /#/,3s :/#/' passwd								#将文件的第2,3行的:更改为#
sed '/^eanble/w passwd' rhel8.2.repo						#把rhel8.2中的行写入到repo中去进行但是会覆盖之前的内容
sed  '18i hellow:word:18' passwd 							#将内容插入到指定的行中去
sed '/^root/i hello:word:1' passwd 							#将指定的内容插入到指定的内容之前
sed -e '/^hello/c passwd' passwd 							#将内容中的指定内容进行替换
sed  's/:/#/g' passwd										#将所有的列中的:替换为#
sed  's/:/#/' passwd										#将第一列中的:替换为#

正则表达式的检索规则在sed可以通用,任意命令可以加入-i参数进行保存更改到文件中去

2.练习

练习及脚本 Apache_port.sh 此脚本接入数字 http的端口就改为此数字 假设selinux为关闭状态 例如: sh Apache_port.sh ERROR: Pleaase input port number following script !! sh Apache_port.sh 8080 apache的端口会被修改为8080

#!/bin/bash
[ -n $1 ] && {
	rpm -qa | grep httpd > /dev/null && {
	sed -e "/^Listen/c Listen "$1"" -i /etc/httpd/conf/httpd.conf > /dev/null
	systemctl restart http
	exit
	}
	exit
}||{
echo "ERROR: Pleaase input port number following script !!"
exit
}

注意脚本中''表示强引用将所有变量引用为字符不会引用为变量""表示弱引用即将引用变量

三、awk命令

1.awk命令解释

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。

参数作用
-F指定分隔符
变量作用
NR行数
NF列数
-F指定分割符号
$0表示所有的列
$1表示第一列
$2表示第二列
ip addr show eth0 | awk '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/[0-9]{0,2}/{print $2 }'
									#可以将本机的ip直接过滤出来进行显示								

2.课后练习

统计在系统中能su切换的并且用户加目录不在/home下的用户数量

awk -F : '$6!~/home/&&/bash$/{print}' /etc/passwd

总结

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:59:27  更:2022-03-24 01:02:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:55:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码