磁盘分区和awk

2021/12/22 23:52:29

本文主要是介绍磁盘分区和awk,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、磁盘管理

1.重点

  • Linux系统磁盘管理的方法
  • 挂载磁盘的步骤
  • Linux磁盘分区的工具及其区别
  • 查看磁盘与分区的命令

2.详情

1.Linux系统中磁盘管理就是将硬盘通过挂载的方式挂载到linux文件系统中。

2.挂载磁盘的步骤

1、关机
2、添加硬盘
3、创建分区
	fdisk /dev/sdb或gdisk /dev/sdb
4、格式化文件系统
	mkfs.xfs /dev/sdb1 
5、挂载
	mount /dev/sdb1 /mnt

3.Linux磁盘分区的工具及其区别

fdisk:分区2TB以下的磁盘,最多可以分4个分区
gdisk:分区2TB以上的磁盘,最多可以分128个分区

4.查看磁盘与分区的命令

lsblk   : 查看本机的磁盘
df -h   :  查看本机的分区

二、awk

1.重点

  • awk的功能是什么?
  • awk的语法结构是什么?
  • awk的语法的详细组成是什么?
  • awk的生命周期

2.简介

1.功能

主要是用来格式化文本

2.awk的语法:

awk [参数] [处理规则] [操作对象]

3.awk 的语法的详细组成

1.参数
2.处理规则执行流程
3.函数
4.预定义变量
5.定位
序号 awk语法详细组成 1 2 3 4 5 6 7
1 参数(1) -F - - - - - -
2 预定义变量(6) $0 $n NF NR FS OFS -
3 处理规则的执行流程(4) BEGIN{} // {} END{} - - -
4 函数(2) print printf 数字- - - - +
5 定位(表达式)(7) 正则 比较6 逻辑3 算术5 条件5 范围 流程控制
6 流程控制(3) if 3 for 3 while - - - -
相关符号 || ! !~ ~ <= >= < > ==
+ - * / % ++ -- %s %d

4.生命周期

1.接收:接收一行作为输入
2.分解:把刚刚读入进来得到文本进行分解
3.处理使用处理规则处理文本
4.赋值:使用处理规则处理文本
5.再处理:把处理完成之后的所有的数据交给END{}来再次处理

# 拓展:grep、sed和awk都是读一行处理一行,直至处理完成。

3.详情

预定义变量 功能 符号 案例
1 代表当前行 $0 awk -F: '{print $0, "---"}' /etc/passwd
2 代表第n列 $n awk -F: '{print $1}' /etc/passwd
3 记录当前行的字段数 NF awk -F: '{print $NF}' /etc/passwd
4 用来记录行号 NR awk -F: '{print NR}' /etc/passwd
5 指定文本内容分隔符(默认是空格) FS awk 'BEGIN{FS=":"}{print $NF, $1}' /etc/passwd
6 指定打印分隔符(默认空格) OFS awk -F: 'BEGIN{OFS=" >>> "}{print $NF, $1}' /etc/passwd
awk处理规则的执行流程 1 2 3 4
种类 BEGIN{} // {} END{}
作用 一般用于定义变量 正则,用于匹配 循环,作用是处理文件 义是打印之前,处理一遍

*执行顺序:从左到右
*是否要求全部出现:不需要,最少一个,最多四个

函数 参数
print 打印 - - - - -
printf 格式化打印 %s(字符串) %d(数字) - (左对齐) +(右对齐) 数字(至少占用字符位)
[root@localhost ~]
# awk -F: 'BEGIN{OFS=" | "}{printf "|%+15s|%-15s|\n", $NF,$1}' /etc/passwd
定位 1 2 3 4 5 6
正则表达式
比较表达式 > < >= <= ~ !~
逻辑表达式 &&(逻辑与 ) ||:逻辑或 !:逻辑非
算术表达式 + - * / %
条件表达式 == > < >= <=
范围表达式

案例:

1.awk -F: '/root/{print $0}' /etc/passwd
2.awk -F: '/^root/{print $0}' /etc/passwd
3.awk -F: '$4 > $3{print $0}' /etc/passwd
4.awk -F: '$NF ~ /bash/{print $0}' /etc/passwd
5.awk -F: '$NF !~ /bash/{print $0}' /etc/passwd
6.awk -F: '$3 + $4 > 2000 && $3 * $4 > 2000{print $0}' /etc/passwd
7.awk -F: '$3 + $4 > 2000 || $3 * $4 > 2000{print $0}' /etc/passwd
8.awk -F: '!($3 + $4 > 2000){print $0}' /etc/passwd
9.awk -F: '$3 + $4 > 2000{print $0}' /etc/passwd
10.awk -F: '$3 * $4 > 2000{print $0}' /etc/passwd
11.awk -F: 'NR % 2 == 0{print $0}' /etc/passwd
12.awk -F: 'NR % 2 == 1{print $0}' /etc/passwd
13.awk -F: 'NR == 3{print $0}' /etc/passwd
14.awk -F: '/^root/,/^ftp/{print $0}' /etc/passwd
序号 流程控制 语法结构 - -
1 if if(){} if(){}else{} if(){}else if(){}else{}
2 for for(i="初始值";条件判断;游标){} - -
3 while while(条件判断){} - -

案例:

[root@localhost ~]
# awk -F: '{if($3>$4){print "大于"}else{print "小于或等于"}}' /etc/passwd
[root@localhost ~]
# awk -F: '{for(i=10;i>0;i--){print $0}}' /etc/passwd
[root@localhost ~]
# awk -F: '{i=1; while(i<10){print $0, i++}}' /etc/passwd
[root@localhost ~]
# awk -F: '{if(NR%5==0){print "----------------"}print $0}' /etc/passwd


这篇关于磁盘分区和awk的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程