千家信息网

unix shell编程摘记系列(二)

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,一、正则表达式句点. //匹配任意单个字符,如a..表示匹配a后两个字符^ //匹配行首,如^w,表示匹配位于行首的w$ //匹配行尾,如x$表示匹配x位于行尾的行,^insert$表示只包含inse
千家信息网最后更新 2024年11月18日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安全错误 数据库的锁怎样保障安全 戒毒局网络安全法律法规专题讲座 安卓软件开发平台教程 平度微信公众号软件开发系统 普陀区特定软件开发设计标准 襄阳网络安全检查 电力网络技术运维 最高端的服务器 服务器与磁盘阵列的连接 江苏淘车无忧互联网科技电话 日本网络安全战略 安全内参 软件开发公司可以上市吗 mysql数据库整数字段 闫秋艳数据库第六章 无锡安卓软件开发招聘 戴尔服务器代理商有哪些级别 lol服务器哪个玩家最多 浙江加工刀片服务器设计 软件开发的职业生涯规划书 数据库日期型宽度为8怎么设置 YOUTUBE视频软件开发 猫和老鼠手游神仙服务器 猎魂觉醒服务器怎么调出来 邹平瓷砖软件开发定制 安徽企业网络技术服务价格信息 福建综合软件开发代理商 db数据库修改器汉化 数据库技术与应用哪个大学 杭州市正伦网络技术有限公司 网络安全培训班班长发言 电商插件数据库
0