啊!我的头发!!——文本处理命令和Shell正则表达式

Linux下Go程序构建与安装的工程化实践 Go程序构建(build)与安装(install)是Linux平台软件交付的核心环节,其本质远超基础命令操作,涉及模块依赖管理、静态链接控制、符号表裁剪、构建可重现性及系统级集成等关键技术原理。掌握`go build -ldflags`参数调优、`CGO_ENABLED=0`权衡、`go mod verify`校验机制,能显著提升二进制安全性与跨环境兼容性;在信创适配、Kubernetes工具链、CLI应用分发等典型场景中,该能力直接决定部署成功率与运维可靠性。本文聚焦Linux原生环境,详解从本地可执行到 阅读详情


sort命令

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

语法格式

sort [选项] 参数(文件)
或cat 参数 | sort 选项

常用选项

-f:忽略大小写,若不使用则会默认将大写字母排在前面
-b:忽略每行前面的空格
-n:按照数字进行排序
-r:反向排序
-u:等同于uniq,表示忽略连续的重复行
-k:指定要进行排序的字段
-t:指定字段分隔符,若不使用则会默认使用[Tab]减分隔
-o <输出文件>:将排序后的结果转存到指定文件

示例:

sort -n /root/shili

sort -t ':' -k 3 -n /etc/passwd

du -a | sort -nr -o du.txt

uniq命令

用于报告或者忽略文件中连续的重复行,常与sort命令结合使用

语法格式

uniq [选项] 参数(文件)
或
cat 参数 | uniq 选项

常用选项

-c:进行计数,并删除文件中重复出现的行
-d:仅显示连续的重复行
-u:仅显示出现一次的行

示例:

uniq /root/shili2
sort -n /root/shili2 | uniq -c

tr命令

常用来对来自标准输入的字符进行替换、压缩和删除

语法格式

tr [选项] 参数

常用选项

-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d:删除所有属于字符集1的字符
-s:将重复出现的字符串压缩为一个字符串,然后用字符集2替换字符集1
-t:字符集2替换字符集1,不加选项也是一样的效果

参数

  • 字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”
  • 字符集2:指定要转换成的目标字符集

示例:

[root@localhost ~]# echo "abc" | tr 'a-z' 'A-Z'

[root@localhost ~]# echo -e "abc\ncabcdab" | tr -c "ab\n" "0"
ab0
0ab00ab
[root@localhost ~]#echo -e "abc\ncabcdab" | tr -c "ab" "0"
ab000ab00ab0[root@localhost ~]# 

[root@localhost ~]# echo 'hello word' | tr -d 'od'
hell wr

[root@localhost ~]# echo "thissss is The Lion Kinggggggg" | tr -s 'sg'
this is The Lion King

删除空行

[root@localhost ~]# echo -e "aa\n\n\n\n\nbb" | tr -s "\n"
aa
bb
cat /root/shili3 | tr -s "\n"

把路径变量中的冒号":",替换成换行符"\n"

[root@localhost ~]# echo $PATH | tr -s ":" "\n"
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
[root@localhost ~]# echo -e "aa\n\n\n\n\nbb" | tr -s "\n" ":"
aa:bb:[root@localhost ~]# 

删除Windows文件“造成”的’^M'字符:

cat 文件 | tr -s "\r" > new_文件
或
cat 文件 | tr -d "\r" >new_文件

Linux中遇到换行符(\n)会进行回车+换行的操作,回车符反而只会作为控制字符(^M)显示,不发生回车的操作。而Windows中要回车符+换行符(\r\n)才会回车+换行,缺少任何一个控制符或者顺序不对都不能正确的另起一行

正则表达式

通常用于判断语句中,用来检测某一字符串是否满足某一格式

正则表达式的组成

正则表达式是由普通字符与元字符组成

  • 普通字符包括大小写字母、数字、标点符号及一些其他符号
  • 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式

基础正则表达式常见元字符

\:      转义字符,用于取消特殊符号的含义,例:\!、\n、\$等
^:      匹配字符串开始的位置,例:^a、^the、^#、^[a-z]
$:      匹配字符串结束的位置,例:word$、^$匹配空行
.:      匹配除\n之外的任意一个字符,例:go.d、g..d
*:      匹配前面子表达式0次或者多次,例:goo*d、go.*d
[list]: 匹配list列表里的一个字符
[^list]:匹配任意非list列表里的一个字符
\{n\}:  匹配前面的子表达式n次
\{n,\}: 匹配前面的子表达式至少n次
\{n,m\}:匹配前面的子表达式n到m次
注:egrep、awk使用{n}、{n,}、{n,m}匹配时“{}”前不用加“\”

扩展正则表达式元字符:

支持egrep和awk工具

+: 匹配前面的子表达式1次以上,例:go+d,将匹配至少一个o,如dod、good、goood等
?: 匹配前面的子表达式0次或者1次,例:go?d,将匹配gd或god
():将括号中的字符串作为一个整体
|: 以或的方式匹配字条串,例:g(oo|la)g,将匹配good或者glad

正则表达式匹配E-mail地址

用户名@:^([a-zA-Z0-9_\-\.\+]+)@
子域名:([a-zA-Z0-9_\-\.]+)
.顶级域名(顶级域名的字符串长度一般在2到5):\.([a-zA-Z]{2,5})$

egrep '^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$' email.txt
awk '/^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/{print $0}' email.txt

Caddy集成OWASP Coraza WAF:开源Web应用防火墙实战配置指南 Web应用防火墙(WAF)是保障Web服务安全的核心组件,其原理是通过预定义的安全规则集,在HTTP/HTTPS流量到达应用前,对请求和响应进行实时检测与过滤,从而防御SQL注入、跨站脚本(XSS)等常见攻击。这项技术为Web应用提供了关键的安全层,尤其适用于API网关、反向代理等场景。OWASP Coraza作为一个用Go语言编写、完全兼容ModSecurity规则的开源WAF引擎,因其高性能和易集成性,成为构建免费、强大防护体系的理想选择。通过coraza-caddy模块,开发者可以便捷地将Coraza 阅读详情

相关推荐

AI+App智能自动化实战:从CV/OCR到状态机的完整架构与避坑指南

计算机视觉(CV)与光学字符识别(OCR)是人工智能在感知领域的关键技术,它们使机器能够理解和解析图像与文本信息。其原理在于通过深度学习模型提取视觉特征,实现目标检测、分类和文字识别。在工程实践中,这些技术为自动化系统装上了“眼睛”,极大提升了处理非结构化信息的能力。结合状态机(State Machine)等控制逻辑,可以构建出能够理解上下文、做出决策的智能流程。这种“视觉感知+逻辑决策”的技术组合,在移动应用(App)自动化领域展现出巨大价值,尤其适用于需要处理动态界面、复杂交互的业务场景。例如,在电商比

weixin_33991418的博客 464

sort -nr作用 linux,sort命令

1.sort命令sort命令可以给文本进行排序。sort命令操作的是行。shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。2.sort的使用语法:sort [选项] ... [文件] ...选项:-b:忽略前面空格。-c:测试文件是否已经排序。-d:根据字典顺序排序,仅比较数字 字母 空格等字符。-f:忽略大小写。-i:仅比较可打印字符。-n:纯数字排列-R...

weixin_42509720的博客 1万+

数字IC后端实现之快速获取innovus中drv violation的所有net list

数字IC后端设计实现之快速获取innovus中drv violation的所有net list

weixin_37584728的博客 3350

Linux 关于 sort 命令的使用

一、简介 sort是linux中用于文本排序的命令, 对文本和二进制文件的记录(行)进行排序或合并。 二、常用参数 -n 按数值大小排序 -t 指定分隔符,没有指定时,以空白作为分隔符 -k 排序字段 如: -k1 (按第1个字段排序) -k 1.2, 3.4 (按从第1个字段的第2个字符起,到第3个字段第4个字符止,进行排序) -b 忽略每行开始的空格 -o 结果输出文件 -r 以相反顺序排序 -m 合并已经有序的文件,不排序 -f 忽略大小写 -d 排序时只按字母、数字或空格,忽略其它字符

dcong9010的博客 1616

MATLAB实战:5步搞定GNSS单点定位解算(附完整代码)

本文提供了一份基于MATLAB的GNSS单点定位实战指南。通过5个核心步骤,详细讲解了如何从卫星坐标和伪距观测值出发,利用最小二乘迭代算法,构建并实现一个完整的单点定位解算器。文章附有完整代码,并涵盖精度评估与结果分析,适合GNSS初学者和MATLAB用户快速上手实践。

a2b3c4d5e的博客 250

通信工程学习:什么是OLT光线路终端

OLT(光线路终端)是无源光网络(PON)的核心局端设备,负责光/电信号转换、数据处理、带宽分配及用户管理。具有高带宽、低损耗、高安全性和易维护等技术特点,广泛应用于家庭、企业及公共机构宽带接入。未来将向更高性能、智能化方向发展,结合SDN/NFV等新技术,提升网络服务质量。

limengshi138392的博客 4366

sort -nr

sort -nr 命令是将输入的文本按数字逆序排序。 例如,如果输入的文本为: 5 2 8 7 那么使用 sort -nr 命令后的输出将会是: 8 7 5 2

weixin_35749786的博客 703

STM32使用 jansson 处理 Json格式字符

STM32 Json 字符的创建和解析1、Json简介2、jansson库的下载安装和报错解决2.1、下载安装2.2、STM32工程文件中导入jansson库2.3、报错解决2.4、修改堆栈空间3、Json 字符的创建4、Json 字符的解析4.1 纯键值对4.2、键的值是一个对象4.3、键的值是一个数组   STM32处理json字符串一般不常见,大部分都是不需要处理的数据,但是在一些通信中需要处理上传或者下传的数据,就别比如在物联网中,有一部分数据就是以json格式传输的,那么就需要对数据经行解析。我简

青烨慕容 7423

sort sort -r sort -n sort -nr的区别

sort sort -r将数字当做字符进行排序 sort -n sort -nr 按照整个数字来排序 举例说明: linux系统中新建一个num.txt,neir内容如下 使用sort排序 使用sort -n排序 ...

znHD的博客 3万+

基于Abaqus的横向各向同性线弹性理想塑性材料模型的umat子程序实现——以Fortran为例,带您揭秘弹性塑性模型编程之道

通过以上步骤,我们已经在Abaqus中使用Fortran实现了横向各向同性线弹性理想塑性材料模型的umat子程序。在实际应用中,我们需要根据具体的材料特性和加载条件来调整模型参数和计算过程。尽管我在这篇文章中尽力提供了详细的教程,但由于我自身的知识限制和经验不足,可能会有误解或错误。我希望大家在学习过程中能多思考,多实践,多交流,以更好地理解和掌握这个主题。

qq_38334677的博客 1690

数据本体论如何指导数仓建模?

数据本体论指导数仓建模的核心在于构建业务语义与数据结构的桥梁。该方法从业务域中抽象标准化知识体系,包含核心概念、属性、关系和规则五大要素,并将其映射为分层数仓模型。通过"业务本体梳理→本体建模→模型映射→治理迭代"的流程,实现数仓从"结构存储"到"语义载体"的升级。相比传统建模,该方法能解决语义不一致、跨域融合难等问题,使数仓具备更好的可扩展性和业务对齐性。实践表明,以数据本体论为指导的数仓建模能显著提升数据资产的可理解性和复用价值。

石榴姐yyds 396

linux命令之——sort和uniq

2、uniq -c:统计紧挨着的重复行出现的次数(重复行必须互相挨着才能统计)5、sort -k 2 表示按第二列排序(sort默认按第一列排序)1、sort -nr :降序排序,并将重复的行变成相邻状态。3、如果想统计文件内所有重复行出现的次数需要两者结合使用。4、以冒号为分隔符,按第3列进行排序。1.1、sort -t -k参数。

qq_25096749的博客 413

基于MATLAB的逐次变分模态分解(SVMD)算法详解

本文详细介绍了基于MATLAB的逐次变分模态分解(SVMD)算法。SVMD是一种改进的变分模态分解方法,通过逐次分解机制克服传统VMD算法需要预设模态数量的缺陷。文章从信号分解方法的发展历程入手,阐述了SVMD的核心优势与创新点,包括参数敏感性降低、自适应分解能力和更好的频率分离性能。详细解析了SVMD的数学模型和优化求解过程,重点讨论了变分问题构建、ADMM优化方法和停止准则设计。通过MATLAB代码实现展示了SVMD的具体应用,包括参数初始化、信号预处理、模态提取和残余信号更新等关键步骤。

qq_42212808的博客 131

Shell脚本进阶篇——编写自动判断自动创建添加用户和用户密码的脚本

博客导读:# 写作此博客的背景# 问题的要求# 解题思路# 思路流程图# 解决具体过程# 源码# 结果展示初次接触shell脚本,在最近的学习中,有一道考察比较全面的试题,小编苦苦的琢磨,耐心的钻研,在掉了101根头发之后,终于让小编给琢磨透了。嘻嘻笑。感觉这道题对之前的知识点考察比较全面,所以打算总结出来,以备以后复习使用,同时也供遇到同样问题的小伙伴们参考,如有不足之处还...

weixin_34187862的博客 813

国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题2(含答案)

国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) ...

无名何许人的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux之shell编程

很多人写代码代码写着写着就放弃了,我就是其中一个,因为太枯燥太无聊太费脑子了,感觉掉两根头发都对不起我的父母。以前写java的时候感觉写代码是世界上最难的事情,但是随着工作经验的增长慢慢开始对编程有了新的理解和看法,以前看不懂的线程、堆栈啥的回过头在看看发现竟然不是那么难理解了,所以才有了我要拿下shell编程的想法,其实说白了是工作需要,哈哈! 1.shell的执行方式...

super_m@n的博客 256

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

linux shell sed 单引号, 双引号,反引号, 斜杆, 反斜杆(‘ “ ` / \)

前言: 来看这个内容的,估计和我一样被绕晕了, 找不到规则。其实这是shell比较灵活导致的。 其实遵循如下原则可以避免莫名其妙的意外(少掉头发)。 1) 坚决不使用反引号(`), 坚决使用$() 2) 对于不需要转义的字符串,坚决使用单引号括起来。 (反斜杆, 在双引号, 或不加引号的情况下, 会有特殊的变化) 例如: /opt/syb/test # echo \opt\tmp\ | sed 's:\\:\\\\:g' opttmp echo "\opt\tmp\" | se...

u013985241的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

linux批量新建用户流程图,Shell脚本进阶篇——编写自动判断自动创建添加用户和用户密码的脚本...

博客导读:# 写作此博客的背景# 问题的要求# 解题思路# 思路流程图# 解决具体过程# 源码# 结果展示初次接触shell脚本,在最近的学习中,有一道考察比较全面的试题,小编苦苦的琢磨,耐心的钻研,在掉了101根头发之后,终于让小编给琢磨透了。嘻嘻笑。感觉这道题对之前的知识点考察比较全面,所以打算总结出来,以备以后复习使用,同时也供遇到同样问题的小伙伴们参考,如有不足之处还请海涵,如有错误之处,...

weixin_33665771的博客 428

DVWA命令注入漏洞:从原理到实战的攻防博弈

命令注入是Web安全领域的经典漏洞,其根源在于应用程序将不可信的用户输入直接拼接到系统命令中执行。攻击者通过注入Shell元字符(如`;`、`&&`、`|`)来改变命令的原始语义,从而在服务器上执行任意命令。这种漏洞常见于需要调用系统命令的功能模块,如网络工具、文件操作或系统管理界面。理解命令注入的原理,有助于掌握服务器端安全风险的本质,并应用于渗透测试和安全开发实践。在DVWA靶场中,命令注入模块通过四个安全级别(Low到Impossible)生动展示了漏洞的利用、过滤绕过及最终防御方案,是学习Web安全

weixin_30955617的博客 507

Kindle屏保DIY:打造个性化诗词字帖的实用指南

本文详细介绍了如何将Kindle变身为个性化电子字帖的实用指南,涵盖诗词内容精选、繁简转换技巧及自动化处理脚本。通过Kindle的电子墨水屏优势,实现碎片化练字,提升书法学习效率。特别推荐使用Calligrapher.ai等工具进行排版优化,适合书法爱好者和职场人士。

weixin_29204205的博客 239

小白零基础Linux基础教学|linux学习一般多长时间?又该从哪里上手学习?

随着互联网突飞猛进的发展,linux在现代社会中得到了广泛的应用,目前市场上百分之八十的服务端都在使用linux的操作系统,小至私人企业,大至世界百强企业,均有Linux操作系统使用者,因此,Linux就业前景很不错,很多人想学习Linux,那么Linux好学吗?一般多长时间能学会? Linux的学习说难不难,说容易也不容易,这就要看你是否掌握了合适的学习资源和方法,以及持之以恒的学习精神,如果这...

weixin_42775942的博客 1627

从零构建终端AI编程助手:基于大语言模型的Coding Agent实现

大语言模型(LLM)作为当前人工智能的核心技术,通过海量代码和文本训练,具备了理解自然语言和生成代码的能力。其原理基于Transformer架构,通过自注意力机制捕捉长距离依赖关系,从而实现对编程逻辑的深度理解。这一技术价值在于能够将自然语言指令转化为可执行代码,极大提升了开发效率。在实际应用场景中,LLM可集成到开发工具中,实现智能代码补全、错误调试和文档生成等功能。本文聚焦于如何将LLM与终端环境深度结合,构建一个本地优先的Coding Agent。通过设计智能体(Agent)的“感知-思考-行动”工作

weixin_30621959的博客 328

手机复制AI代码为何总报错?四大断层与七步净化法

代码复制是编程中最基础的操作,但在移动端AI对话工具(如ChatGPT、Gemini)中,它却常导致IndentationError、路径错误或命令未找到等高频故障。根本原因在于大模型输出的是语义正确但环境无关的‘逻辑代码’,而手机系统存在渲染层污染、缩进失真、环境语境剥离和交互依赖缺失四大底层断层。这些断层使复制内容携带不可见Unicode控制字符、混用空格与Tab、绑定虚构Linux路径,并默认用户具备终端交互能力。因此,直接粘贴运行必然失败。本文聚焦移动端真实工作流,提供可复现的剪贴板净化、编辑器适配

dingdi3021的博客 503

PHP文件包含漏洞深度利用:php://filter协议与编码绕过实战

文件包含漏洞是Web安全中常见的高危风险点,它允许攻击者通过动态文件加载功能读取或执行任意文件。其核心原理在于应用程序未对用户输入的文件路径进行充分校验,导致攻击者可以突破预定目录范围,访问系统敏感文件或注入恶意代码。在PHP环境中,该漏洞的技术价值尤为突出,因为它常与丰富的协议封装器和流过滤器结合,实现复杂的绕过与利用。php://filter协议作为PHP内置的元封装器,不仅能读取源码,更能通过链式过滤器对数据流进行编码、压缩和转换,从而绕过内容检查与文件头验证。在实际的CTF竞赛和攻防演练中,攻击者常

435

CTF Web安全实战:SQL注入、文件包含与代码审计三大核心漏洞解析

SQL注入、文件包含与代码审计是Web安全领域的三大核心漏洞类型,也是CTF竞赛中的高频考点。SQL注入通过构造恶意SQL语句,绕过应用程序的输入过滤,实现对数据库的未授权访问或数据窃取,其技术价值在于深入理解数据库交互机制与WAF绕过技巧。文件包含漏洞则允许攻击者包含并执行服务器上的文件,常利用PHP伪协议如php://filter进行源码读取,或通过日志文件包含实现远程代码执行(RCE),在渗透测试中具有重要实战意义。代码审计要求开发者或安全人员深入分析应用程序源码,追踪敏感函数与变量传递,挖掘逻辑漏洞

dbp5156的博客 396

3.Linux基础开发⼯具【由浅入深-Linux】

在 Windows 环境中,我们习惯了双击 或 文件并一路点击“下一步”来安装软件。但在 Linux 的世界里,软件的分发和安装理念有着本质的不同。Linux 强调权限控制、模块化和依赖管理。为了帮您构建完整的 Linux 系统管理知识体系,我们可以将 Linux 下安装软件的方式归纳为五大主流阵营。这是 Linux 下最正统、也是日常使用频率最高的方式。它又细分为“在线仓库安装”和“本地包安装”两种场景。1. 在线仓库安装(如同手机自带的 App Store) 操作系统维护着一个庞大的软件云端仓库。通

插花弄玉的博客 912
上一篇: Shell函数和数组(想不出来骚话了,就这样吧,累了,都毁灭吧,赶紧的)
下一篇: sed和awk(烤红薯真好吃啊!)
Alterego_
博客等级 码龄6年 14粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值