shell循环执行脚本与AWK实现LEFJOIN or join

本文介绍了如何使用Shell脚本来周期性执行任务,例如每30秒执行两次`monitor.sh`。同时,通过Awk命令演示了如何实现类似SQL中的LEFT JOIN或JOIN操作,对两个文件进行数据连接。示例展示了如何根据指定栏位内容合并文件,并提供了`join`命令的不同选项及其用途。
摘要由CSDN通过智能技术生成
1、循环执行monitor.sh(Every 30 sec,执行2次)
#!/bin/bash
n=0
while (($n<2))
do 
  ./monitor.sh
  n=$((n+1))
  sleep 30
done

2、awk实现leftjoin or join
awk 'FNR==NR{a[$1" "$2]=$3" Bearers:"$4}NR!=FNR{print $1"  cellid:"$2"   UE(S):"a[$1" "$2]"   CELL:"$3}' a.txt b.txt

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
参数:

-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
-o<格式> 按照指定的格式来显示结果。
-t<字符> 使用栏位的分隔字符。
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
-1<栏位> 连接[文件1]指定的栏位。
-2<栏位> 连接[文件2]指定的栏位。
--help 显示帮助。
--version 显示版本信息。

将两个文件中,指定栏位内容相同的行连接起来。 
join -t ':' ci.txt enb.txt>output.txt //以:分隔,将两个文件连接起来
join -a1 ci.txt enb.txt //相当于leftjoin
join -a2 ci.txt enb.txt  //相当于rightjoin
join -o 1.1 1.2 2.1 2.2 ci.txt enb.tx //取2个文件字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_44390640

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值