【Shell】使用awk sed获取一行内容的两个值
突然有需求需要一个脚本,同时获取到每一行数据的两个值,下面做了一个例子模板,仅供记录参考
cat test.txt
id=1,name=zclinux1
id=2,name=zclinux2
id=3,name=zclinux3
id=4,name=zclinux4
id=5,name=zclinux5
id=6,name=zclinux6
id=7,name=zclinux7
id=8,name=zclinux8
id=9,name=zclinux9
id=10,name=zclinux10
id=11,name=zclinux11
id=12,name=zclinux12
id=13,name=zclinux13
id=14,name=zclinux14
id=15,name=zclinux15
id=16,name=zclinux16
id=17,name=zclinux17
id=18,name=zclinux18
id=19,name=zclinux19
id=20,name=zclinux20
cat test.sh
#!/bin/bash
filename=~/test.txt
id=`grep id $filename | awk -F',' '{print $1}'| awk -F'=' '{print $2}'`
for i in $id;
do
f1=`sed -n "${i}p" $filename | awk -F',' '{print $1}'| awk -F'=' '{print $2}'`
f2=`sed -n "${i}p" $filename | awk -F',' '{print $2}'| awk -F'=' '{print $2}'`
echo "id = $f1 ,Name = $f2"
done
执行结果:
sh test.sh
id = 1 ,Name = zclinux1
id = 2 ,Name = zclinux2
id = 3 ,Name = zclinux3
id = 4 ,Name = zclinux4
id = 5 ,Name = zclinux5
id = 6 ,Name = zclinux6
id = 7 ,Name = zclinux7
id = 8 ,Name = zclinux8
id = 9 ,Name = zclinux9
id = 10 ,Name = zclinux10
id = 11 ,Name = zclinux11
id = 12 ,Name = zclinux12
id = 13 ,Name = zclinux13
id = 14 ,Name = zclinux14
id = 15 ,Name = zclinux15
id = 16 ,Name = zclinux16
id = 17 ,Name = zclinux17
id = 18 ,Name = zclinux18
id = 19 ,Name = zclinux19
id = 20 ,Name = zclinux20
将同一行中的id和Name分别都提取出来
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 从零开始开发一个 MCP Server!
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档