红inⅸ操作系统》实验指导/实验七:通过Shl编程实现操作系统管理维护4 RSTART被匹配函数匹配的字符串首 RLENGTH被匹配函数匹配的字符串长度 ①在屏幕中输出etc/ passwd文件 awk'iprint $of'/etc/passwd ②在屏幕中输出系统中所有用户名 k-F:'iprint $l)/etc/passw ③在屏幕中输出第一行的最后一个字段 awk-F: 'NR=lprint $NF)/etc/passwd awk也支持正则表达式、关系运算符、逻辑运算符、算数运算符、控制语句、管道流河 格式化输出。 ①在屏幕中输出/ etc/passwd文件下不是以root开头的前三行数据 awk-F: !/root/print so,/etc/passwd head -3 ②在屏幕中输出 etc/passwd文件下uid等于1000的用户名 0o print $1;/etc/passwd ③在屏幕中输出系统中所有系统用户的信息 awk-F: $31=0&& $3 <500(print $o) '/etc/passwd ④在屏幕中输出用户名、UID、用户类型 awk-F:'"{if($3=0){ print$1"的UID是"$3",用户类型为超级用户"} else if ($3>500{prnt$"的UID是"$3",用户类型为普通用户"}else{ print$1"的 UID是"$3",用户类型为系统用户"}}/ etc/passwd ⑤在屏幕中格式化输出用户名、UID、用户组目录 awk-F: 'printf"%-20s%-10s%sIn"1,$3, $6,' /etc/passwd (2)sed的用法 sed可对文件中的行内容进行删除、改变、添加、插入、交换等操作。sed总是以行对输 入进行处理,并且sed处理的不是原文件而是原文件的拷贝 sed命令行格式为: sed [options]' command' file, sed常见的命令如表1-sed常见的命令 表所示: 表1-4sd常见的命令表 变量 含义 变量 含义 在当前行后添加一行或多行内容 c 用新文本替换当前行中的文本 adhq 删除行 在当前行之前插入文本 已经读出的记录数 H 输入记录分隔符 结束或退出sed r 在文件中读取输入行 对所选行以外的行应用所有命令 S 字符串替换 打印当前行号 表示把行写入一个文件 ①在屏幕中输出除第一行的所有文本内容 sed'ld' /etc/passwd ②在屏幕中输出第二行到最后一行的内容 sed-n 2, Sp/etc/passwd 管理科学与工程学科/共8页第4页《Linux 操作系统》实验指导 / 实验七:通过 Shell 编程实现操作系统管理维护 管理科学与工程学科 / 共 8 页,第 4 页 RSTART 被匹配函数匹配的字符串首 RLENGTH 被匹配函数匹配的字符串长度 ①在屏幕中输出/etc/passwd 文件 awk '{print $0}' /etc/passwd ②在屏幕中输出系统中所有用户名 awk -F : '{print $1}' /etc/passwd ③在屏幕中输出第一行的最后一个字段 awk -F: 'NR==1{print $NF}' /etc/passwd awk 也支持正则表达式、关系运算符、逻辑运算符、算数运算符、控制语句、管道流河 格式化输出。 ①在屏幕中输出/etc/passwd 文件下不是以 root 开头的前三行数据 awk -F : '!/^root/{print $0}' /etc/passwd|head -3 ②在屏幕中输出/etc/passwd 文件下 uid 等于 1000 的用户名 awk -F: '$3 == 1000 {print $1}' /etc/passwd ③在屏幕中输出系统中所有系统用户的信息 awk -F: '$3 !=0 && $3 <500 {print $0}' /etc/passwd ④在屏幕中输出用户名、UID、用户类型 awk -F : '{ if ($3 == 0) {print $1"的 UID 是"$3",用户类型为超级用户"} else if ($3 > 500) {print $1"的 UID 是"$3",用户类型为普通用户"} else { print $1"的 UID 是"$3",用户类型为系统用户"} }' /etc/passwd ⑤在屏幕中格式化输出用户名、UID、用户组目录 awk -F : '{printf " %-20s %-10s %s\n",$1,$3,$6}' /etc/passwd (2)sed 的用法 sed 可对文件中的行内容进行删除、改变、添加、插入、交换等操作。sed 总是以行对输 入进行处理,并且 sed 处理的不是原文件而是原文件的拷贝。 sed 命令行格式为:sed [options] ' command' file。sed 常见的命令如表 1-4 sed 常见的命令 表所示: 表 1-4 sed 常见的命令表 变量 含义 变量 含义 a\ 在当前行后添加一行或多行内容 c\ 用新文本替换当前行中的文本 d 删除行 i\ 在当前行之前插入文本 h 已经读出的记录数 H 输入记录分隔符 q 结束或退出 sed r 在文件中读取输入行 ! 对所选行以外的行应用所有命令 s 字符串替换 = 打印当前行号 w 表示把行写入一个文件 ①在屏幕中输出除第一行的所有文本内容 sed '1d' /etc/passwd ②在屏幕中输出第二行到最后一行的内容 sed -n '2,$p' /etc/passwd