您的位置:首页 > 游戏 > 手游 > 永久免费的自助建站_代理网址需要用户名和密码_东营网站建设费用_一键优化大师

永久免费的自助建站_代理网址需要用户名和密码_东营网站建设费用_一键优化大师

2024/10/5 22:26:45 来源:https://blog.csdn.net/2401_83810334/article/details/142621136  浏览:    关键词:永久免费的自助建站_代理网址需要用户名和密码_东营网站建设费用_一键优化大师
永久免费的自助建站_代理网址需要用户名和密码_东营网站建设费用_一键优化大师

grep配合正则表达式可以灵活的查找文本内容。
但是有些时候我们不仅仅需要找出数据,还需要按照一定的规则进行整合,格式化排列

文本文件内有一百条规范数据,如下:

John Doe, 25, Engineer
Alice Smith, 30, Data Scientist
Bob Johnson, 22, Intern
Charlie Brown, 35, Manager
...

想要查找某条数据,或者符合条件的数据可以使用grep+正则,找出符合条件的行。
grep

grep -E '*John ' data.txt
用于查找名字首个单词时John的行

在这里插入图片描述
然而此时找出的数据,仍然是整行为单位,我们想把姓名,年龄,职业区分开或者对他们做什么处理时,grep就不够用了;这时候我们可以使用awk。


awk

awk -F ', '  '$2>30 { printf "名字: %s, 年龄: %d, 职业: %s \n", $1, $2, $3}' data.txt
-F 接受字符串作为分割符,也可以是正则表达式
pattern{内置语句 }实现对文本项匹配和对分割后的元素进行处理

在这里插入图片描述

sed
主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

...  | sed 's/职业: /job: /'
's/old/new/'
用新内容代替传入的旧内容

在这里插入图片描述
组合:找出文件中大于25岁的人,将他们的信息格式化显示
在这里插入图片描述

#!/bin/bash
INPUT_FILE="data.txt"
echo "---------------年龄大于25岁的人---------------"
grep -E ', [2][6-9]|, [3-9][0-9]' "$INPUT_FILE" | \
awk -F ', '  '{ printf "名字: %s, 年龄: %d, 职业: %s \n", $1, $2, $3}' | \
sed 's/职业: /job: /'[2][6-9]|, [3-9][0-9]' 表示匹配包含26-29或30-99的行
grep:
过滤/搜索的特定字符。可使用正则表达式能配合多种命令使用
-E 扩展正则表达式
awk:
-F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:,默认的分隔符是连续的空格或制表符
-v var=value 赋值一个用户定义变量,将外部变量传递给awk
-f scripfile 从脚本文件中读取awk命令sed:
options:可选参数,用于控制 sed 的行为。
command:要执行的命令,通常是替换、删除等。
file:输入的文本文件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com