当前位置: 首页 > news >正文

linux基础随心记三-四剑客

一、正则表达式

1、特殊符号

引号
单引号内容原封不动的输出
双引号会解析一些特殊符号,但对于{}(通配符)没有解析
不加引号和双引号类似,额外支持通配符 *.log {1…10}
反引号优先执行反引号内的命令
重定向
>标准正确输出,先清空后写入
>>追加
2>标准错误输出
2>&1 &>xxx.logecho xkm >>xkm.log 2>&1
echo xkm &>>xkm.log
<标准输入
<<cat xxx.txt <<EOF
xxxx
EOF
通配符用于批量处理文件
*所有
{}输出序列
[]
?任意一个字符

2、正则表达式

配合三剑客使用正则对字符进行过滤
正则表达式在线测试

基础正则
^xxx以xxx开头
xxx$以xxx结尾 cat -A 显示文件中隐藏的特殊符号
^$空行
.任意一个字符
\转义字符 ‘\.$’ 以.结尾
x*前一个字符连续出现0次或0次以上
.*所有
[]匹配任意一个字符 [abc] a或者b或者c
不需要转义,与+搭配较多
[^]取反 [^abc] 匹配任意一个字母,除了abc
扩展正则egrep 或 grep -E
sed -r
awk默认支持
+前一个字符连续出现1次或1次以上
[0-9]+ 取出所有的数字
[a-Z]+ 取出所有的单词
|或者
()表示一个整体
或在sed中实现后向引用(反向引用sed)
{}a{n,m} 前一个字符连续出现至少n次,最多m次
a{n} 前一个字符连续出现n次
a{n,} 前一个字符连续出现至少n次
a{,m}前一个字符连续出现最多m次
前一个字符出现0次或1次
perl正则grep -P
\d[0-9]
\s匹配的空字符 空格 tab \ \t \r \n \f
\w[0-9a-zA-Z_]
\D[^0-9]
\s非空字符
\W[^0-9a-zA-Z_]

二、gerp

  • 擅长过滤,过滤速度最快,会把匹配到的行显示出来
选项说明
-n显示行号
-i不区分大小写
-v排除
# 显示/etc/下面一层中以.conf结尾的文件ls/etc/|grep'\.conf$'find/etc/-maxdepth1-typef-name'*.conf'# 使用grep取出/etc/passwd第一列的数据egrep-o'^[^:]+'/etc/passwd

三、sed

  • 擅长取行,过滤,增删查改(替换修改文件内容)
  • 后向引用(截取)
-n取消默认输出,有p输出时要加上-n,不然会全部输出
-r支持扩展正则
-i修改文件内容,这个选项要放在最后
-i.bak先进行备份,然后修改文件内容,这个选项要放在最后

1、查找

  • 精确查找 类似于grep的过滤,但是可以指定行号
  • 模糊查找
# 取出文件的第三行sed-n'3p'/etc/passwd# 取出文件的第2到5行sed-n'2,5p'/etc/passwd# 取出文件的第2行和第5行sed-n'2p;5p'/etc/passwd# 取出文件的最后一行sed-n'$p'/etc/passwd# 过滤出包含root的行sed-n'/root/p'/etc/passwd# 获取范围内的日志sed-n'/11:00:00/,/24:00:00/p'/var/text.log

2、替换

格式: sed ‘s#找谁#替换成什么#g’ 文件名 输出文件内容
sed -i ‘s#找谁#替换成什么#g’ 文件名 修改文件内容
s:substitute 替换
g:global 全局替换,把一行中所有匹配到的内容都进行替换,否则只替换每一行第1个匹配到的内容

3、替换进阶-后向引用

适用于sed命令处理/提取一行中的某一部分,配合正则灵活取列

# \+数字 调用前面的组echo1234567|sed-r's#(1)(.*)(7)#\1<\2>\3#g'1<23456>7# 调换/etc/passwd第一列和最后一列的内容sed-r's#(^.*)(:x.*:)(.*$)#\3\2\1#g'/etc/passwdsed-r's#([a-zA-Z0-9_-]+)(.*:)(.*$)#\3\2\1#g'/etc/passwd# 提取网卡ipipa s eth0|sed-nr'3 s#(^[a-z]+ )(.*)(/.*)#\2#g p'

4、删除

d 删除以为单位
sed ‘3d’ xkm.log
删除空行或带#的行
sed -r ‘/^$|#/d’ xkm.log

5、增加

  • cai
    a:append 在指定行后面追加内容
    i:insert 在指定行上面插入一行
    c:replace 替换指定行的内容,取代

sed ‘3a xxx’ xkm.log

四、awk

是一个单行脚本
取行、取列、混合取行与列、统计功能、判断与循环、数组
擅长取列
‘条件{动作}’

1、取行

# 取出第一行awk'NR==1{print $0}'/etc/passwdawk'NR==1'/etc/passwd# NR Number of Record 记录号,行号# 取出第2到5行awk'NR>=2 && NR<=5'/etc/passwd# 过滤出包含root或nobody的行awk'/root|nobody/'/etc/passwd# 过滤出包含从root到nobody的行awk'/root/,/nobody/'/etc/passwd

2、取列

$数字 表示取列,$1第一列,$0表示这一行
$NF 最后一列 Number of Field
$(NF-1) 倒数第二列
column -t 对齐
-F 指定分隔符 -F:
$4 ~ /^[01]/ 第4列包含0或1开头( ~ 对某列进行过滤)

# 取出ls -lh的size列和最后一列ls-lh|awk'{print $5,$NF}'# 指定复杂分隔符取ipipa s eth0|awk-F'[ /]+''NR==3{print $3}'# 判断第三列大于1000,取出第一列,第三列和最后一列awk-F:'$3>1000{print $1,$3,$NF}'/etc/passwd# 过滤出/etc/passwd第4列的数字是以0或1开头的行,输出第一列,第三列awk-F:'$4 ~ /^[01]/ {print $1,$3}'/etc/passwd

3、统计与计算

  1. 类似wc -l
awk'{i++} END{print i}'/etc/passwd
  1. 进行累加求和
awk'{i=i+$1} END{print i}'/etc/passwd

五、find

擅长在指定目录中查找文件

选项说明
-type什么类型的文件 f表示文件 d表示目录
-name要查找的文件的名称
-size根据大小查找文件 +表示大于 -表示小于
-mtime根据修改时间查找文件,+ 或 - 表示在指定天数内或后
-user根据所属用户
-maxdepth指定深度,写在最前面
# 对查找到的每个文件执行指定的命令find/var/log/app-name'*.log'-matime+7-execrm-f{}\;# 将查找到的所有文件作为参数传递给指定的命令,而不是逐个执行find/var/log/app-name'*.log'-matime-7-exectarzcf /var/log/app.tar.gz{}+
http://www.zskr.cn/news/1416605.html

相关文章:

  • 打破华为健康数据壁垒:3步实现跨平台运动数据自由迁移
  • 别再只盯着储能了!聊聊虚拟电厂(VPP)如何用‘调度算法’盘活你家屋顶的光伏和充电桩
  • 从0到1精通InternLM2.5-7B-Chat-1M:新手必看的5个核心功能与实用技巧
  • BsMax:让Blender变成你最熟悉的3D创作伙伴
  • 高管求职渠道服务商实测:专业度与资源力对比评测 - 得赢
  • 5分钟掌握猫抓:浏览器资源嗅探工具完全使用指南
  • 无损音乐下载神器:Qobuz-DL完整使用指南
  • C++:构造函数,析构函数详解
  • Arduino综合实验:电位器同步控制直流电机与RGB LED
  • 从‘看不懂’到‘门儿清’:手把手教你读懂Linux性能监控命令的输出(附真实案例)
  • job-listing-relevance-model终极指南:从模型下载到生产部署全流程
  • 终极指南:如何用Universal x86 Tuning Utility一键解锁Intel/AMD硬件隐藏性能
  • 认识电子元器件 —— 存储器篇:参数、选型与应用
  • Nginx配置文件泄露实战:利用Python编码特性绕过URL过滤(附POC脚本)
  • Claude Code用户如何配置Taotoken以解决访问不稳定问题
  • SpaceX 自研 AI 训练栈:适配 22 万 GPU 集群,大规模训练比 JAX 提速一个数量级以上
  • 从根目录到Super分区:手把手带你认识安卓手机的系统‘地盘’(附精简系统实战)
  • Arduino与L298N驱动直流电机:PWM调速与H桥控制全解析
  • OpCore-Simplify:3步自动化配置黑苹果OpenCore EFI的终极方案
  • AtlasOS Windows性能优化架构设计与配置指南
  • 如何利用JUST-DUB-IT技术实现LTX-2.3-22b唇形同步的终极指南
  • 保姆级教程:手把手教你用Python为AWS DeepRacer 2018赛道写一个能跑进前10的奖励函数
  • XLM-RoBERTa多语言点击诱饵检测案例研究:实际应用场景与商业价值分析
  • Lean量化交易引擎:5大核心优势+零基础实战入门完整指南
  • 别再纠结了!手把手教你根据硬件和需求选ESXi、PVE还是unRaid(附保姆级避坑清单)
  • 2026年CODcr水质在线自动监测仪十大国产品牌深度测评:技术参数、实战表现与选型全解析 - 仪表品牌榜
  • 华为健康数据解放指南:3步将HiTrack转换为通用TCX格式
  • 保姆级教程:从下载ISO到配置网络,一步步在物理服务器上部署XCP-ng 8.2
  • 别再只盯着功能安全了!聊聊ISO 21448标准下,自动驾驶SOTIF的三大实战挑战与应对思路
  • ok-ww实战手册:基于视觉AI的鸣潮智能自动化全攻略