千家信息网

unix shell编程摘记系列(二)

发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,一、正则表达式句点. //匹配任意单个字符,如a..表示匹配a后两个字符^ //匹配行首,如^w,表示匹配位于行首的w$ //匹配行尾,如x$表示匹配x位于行尾的行,^insert$表示只包含inse
千家信息网最后更新 2025年01月28日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安全错误 数据库的锁怎样保障安全 多节点的服务器硬盘怎么分配 微信的软件开发者是谁 金融软件开发平台有哪些 环境科技评论收录于什么数据库 计算机软件开发的编程者 厦门二维进化网络技术怎么样 域名在哪里指定服务器ip 行政审批中介服务数据库 钢筋识图软件开发 北理网络安全研究生就业 常用的软件开发模型有什么 网络安全答题活动稿件 物联网络技术应用学什么 从事软件开发的数学书 中国知网统计文献数据库 网络技术有限公司用英语 网络安全的风险点 华为h22h05服务器进PE 戴尔服务器查看内存信息 小区里的小米共享网络安全吗 网络安全战队规章 枪战英雄找不到服务器 中天网络技术有限公司 adg数据库主备复制方式 通州品牌服务器回收价格查询 上位机软件开发 书籍 pemc服务器 数据库并发控制原理简述 服务器游戏史诗大战 张湾区互联网软件开发售后保障
0