千家信息网

unix shell编程摘记系列(二)

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、正则表达式句点. //匹配任意单个字符,如a..表示匹配a后两个字符^ //匹配行首,如^w,表示匹配位于行首的w$ //匹配行尾,如x$表示匹配x位于行尾的行,^insert$表示只包含inse
千家信息网最后更新 2025年12月02日unix shell编程摘记系列(二)

一、正则表达式

句点. //匹配任意单个字符,如a..表示匹配a后两个字符

^ //匹配行首,如^w,表示匹配位于行首的w

$ //匹配行尾,如x$表示匹配x位于行尾的行,^insert$表示只包含insert的行

\ //加在特殊字符前去除特殊字符的特殊意义

^$ //匹配空白行

* //匹配0或若干个字符,x*表示匹配0次或若干个连续的x,xx*表示匹配1个或多个连续的x,.*表示0或若干个字符,w.*s表示w开头s结尾的任意字符串

上述字符仅用于搜索串时才有特殊意义,例如/^[A-Z]/,表示匹配以大写字母开头的行;

[^A-Z] //匹配除大写字母之外的字符

{min,max\} //指定范围的匹配,前面的正则表达式至少重复min次,至多max次

\(...\) //保存匹配的字符串,将小括号中匹配的字符串存储到下一个寄存器中(1-9)

[tT] //匹配小写或大写t

[a-z] //匹配任意小写字母

[a-zA-Z] //匹配小写或大写字母

[^字符表] //匹配任一不在字符表中的字符

cut

cut -c1- a //把a文件中每一行从第一个字符到最后最后一次字符的结果析取出来

cut -c1-5 a //把a文件中每一行从第一个字符到第5个字符的结果析取出来

cut -d: -f1 /etc/shadow //把shadow文件中每一行以:分割的第一段的结果析取出来,即是用户名

cut -d: -f1,6 /etc/passwd //把passwd文件中的每一行以:分割的第一段和第六段的结果析取出来,即是用户名和用户宿主目录

cut -f1 a //这里不加-d参数表示cut默认用的制表符作为分隔符

\t //表示制表符

paste //合并行

paste -d '+' a b //将a和b文件中的每一行都合并显示,以+号分割,不加-d参数默认以制表符分割

paste -s a //将a文件中的所有行合并为一行

sed //流编辑器,编辑数据用

sed command file

sed 's/unix/UNIX/g' intro //将intro文件中的unix全部替换为UNIX并在屏幕上打印出来,不改变原文件(s是替换作用,g是全局选项,保证一行中有多个unix都能被替换)

sed -n '1,2p' /etc/passwd //只显示passwd文件的前两行

sed -n '/root/p' /etc/passwd //只显示passwd文件中包含root字符串的行

sed -n '1,2d' /etc/passwd //删除passwd文件中1和2行

sed '5d' a //删除a文件的第5行

sed '/[Tt]est/d' a //删除a文件中包含Test或test的行

sed 's/...//' a //删除a文件中每一行的前3个字符

sed 's/...$//' a //删除a文件中每一行的后3个字符


tr //用于转换来自标准输入的字符,不改变原文件

tr from-chars to-chars

tr e x < /etc/passwd

tr '[a-z]' '[A-Z]' < /etc/passwd //将passwd文件中小写字母转为大写字母

常用ASCII字符的八进制值

响铃 7

退格 10

制表符 11

新行 12

换行 12

换页 14

回车 15

转义 33


tr -s ' ' ' ' a //压缩掉a文件中多余的空格

tr -d ' ' a //删除掉a中的空格

tr 'X' 'x' //所有大写转为小写

tr '()' '{}' //所有左小括号转为左大括号,右小括号转为右大括号

tr '[A-Z]' '[N-ZA-M]' //所有A-M的字符分别转换为N-Z,N-Z的字符分别转为A-M

tr -d '[0-9]' //删除所有数字

grep

grep pattern files
grep -i //不区分大小写

grep -v //反选,不显示包括模式的行

grep -l //显示包含模式的文件名

grep -n //文件中符合指定模式的行显示行号

sort //排序,默认按编码方式升序排列

sort -u //去除重复的行

sort -r //反序排序

sort -o //后面跟文件名,输出定向到文件

sort -t: -k 3 /etc/passwd //按用户ID来排序

uniq //去除连续的重复行

uniq input-files out-files

uniq -d //显示重复的行

sort /etc/passwd |cut -f1 -d: |uniq -d //查找重复的用户名

awk,perl

who|cut -f1 -d' ' |grep '\w\{4,\}' //查找系统中至少4个字符的已登录用户

cut -d: -f 1,3 /etc/passwd | grep '[0-9]\{3,\}' | cut -d: -f 1 //查出系统中用户标识号大于99的用户

cut -d: -f 1,3 /etc/passwd |grep '[0-9]\{3,\}' | wc -l //统计大于99的用户数

ls -l | sort -nrk 5 //按文件大小降序列出目录下的所有文件

字符 文件 一行 用户 大写 字母 括号 特殊 制表符 大写字母 字符串 小写 结果 制表 模式 用户名 排序 参数 多个 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 嗨皮咳嗽服务器为什么登录失败 内蒙古态势推演系统软件开发 广州人工智能软件开发哪家正规 华为南研所数通软件开发 如何看待网络安全教育走进校园 北京思聪网络技术有限公司 GUI750怎样配置服务器 天津信息化软件开发定制价格 网络安全的计算题 公司加强网络安全管理 数据库查询学生表id为偶数 柯美415服务器内存能扩展吗 网络安全厂商产值 筹划网络安全宣传全周 大学生怎么学软件开发 山西数据软件开发有哪些 csgo服务器卡顿 外贸公司建设用什么服务器 新型电力系统网络安全方向 数字峰会网络安全保卫工作 数据库定时备份检测 手机病毒库数据库查询 北京特种网络技术分类设计 电信网络技术发展 在m个中随机取n个数据库 服务器接电瓶供电 河南有哪些软件开发的大专 怎么看战地5什么服务器 崇明区数据软件开发业务流程 学习数据库系统课程的好处
0