格式化linux显示数据库表,通过Shell脚本格式化tnsnames.ora内容案例一则

本文介绍了一种使用Shell脚本来简化tnsnames.ora配置的方法。脚本主要目标是检查tns串是否存在,若存在则直接使用,否则在文件中添加tns串并设置参数。脚本通过sed命令对tnsnames.ora文件进行格式化,删除空行和空格,合并多行tns串,并将处理结果保存到新文件。这大大减少了手动配置的工作量,提高了工作效率。
摘要由CSDN通过智能技术生成

最近总结了下工作过程中的工作量,发现为开发人员配置参数占据了较大的一块,于是便想通过shell脚本简化工作流程操作及减少工作量。

在配置参数的过程中,首先需要查看tnsnames.ora中的内容,如果需要配置的tns串已经在文件中存在,则直接将相关参数指向某个tns串即可。如果不存在,则涉及在tnsnames.ora中添加tns串,再设置相关参数。

在现在的工作中,我们确定通过cat查看tnsnames.ora,接着结合管道和grep来确认tns串是否存在,但这样通常过于繁琐,我们想简单写个shell脚本,以后只需要将tnsnames.ora作为参数传入,即可输出相关结果及提示相应的操作。

在编写脚本过程中,首先面临的一个问题就是tnsnames.ora中tns串的格式不一致:有的tns在同一行,有的tns串分好几行,这样的话,我们需要对文件格式进行格式化。为了便于后续的操作,我们决定将所有的tns串都整理成一行。

格式化脚本主要内容如下:

sed '/^$/d' $1 | sed 's/ //g' | sed ':a;N;$!ba;s/\=\n/\=/g' | sed ':a;N;$!ba;s/\n(/(/g' | sed ':a;N;$!ba;s/\n)/)/g' > tnsnames.result

脚本的主要思路为:

1.首先将tnsnames.ora里的空行和空格去除。

2.将以  (  和  )  开头的行,整理到一行

3.将处理后的结果重定向到一个文件中,保存下来。

对于sed ':a;N;!ba;s/\n(/(/g'  命令的解释:

:a创建一个标记。

N 追加当前行和下一行到模式空间中

ba如果处于最后一行前,跳转到之前的标记处

$!ba($!意思是不在最后一行做后面的操作,最后一行,特殊处理。)

对于查找到tns串是否存在后的操作,由于较简单,略过。

0b1331709591d260c1c78e86d0c51c18.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值