sed 命令及shell的if语句的运用实例

if [ -f /etc/syslog.conf ];     #判断文件是否存在
then
systest=`sed -n  ‘/^auth.info/p‘ /etc/syslog.conf`;    #匹配/etc/syslog.conf文件中是否有auto.info字符串,并返回字符串,systest变量接收。
if [ -n \"\$systest\" ];                                               #判断字符串是否存在
then
sed -e ‘s/^auth.info.*/auth.info        \\/var\\/adm\\/authlog/g‘ /etc/syslog.conf > config.tmp && mv config.tmp /etc/syslog.conf;  #存在则替换
else
awk ‘{print \$0} END{print \"auth.info        /var/adm/authlog\"}‘ /etc/syslog.conf > config.tmp && mv config.tmp /etc/syslog.conf; #不存在则在最后一行添加,solaris系统下不支持sed -i时使用。

sed -i ‘\$a auth.infos    /var/adm/authlogs‘ /etc/syslog.conf;      #不存在则在最后一行添加。 redhat,suse
fi;                                                                              #第一个内层判断结束
syserr=`sed -n  ‘/^*.err;auth.info/p‘ /etc/syslog.conf`;
if [ -n \"\$syserr\" ];
then
sed -e ‘s/^*.err;auth.info.*/*.err;auth.info        \@${loghost}/g‘ /etc/syslog.conf > config.tmp && mv config.tmp /etc/syslog.conf;
else
awk ‘{print \$0} END{print \"*.err;auth.info        \@${loghost}\"}‘ /etc/syslog.conf > config.tmp && mv config.tmp /etc/syslog.conf;
fi;                                                                         #第二个内层判断结束
fi;                                                                      
if [ -f /var/adm/authlog ];
then
echo \"\/var\/adm\/authlog exist.\";
else
touch /var/adm/authlog;                                #创建文件
chown root:system /var/adm/authlog;             #赋权
chmod 600 /var/adm/authlog;                         #赋权
echo \"create file /var/adm/authlog.\";
fi;";

时间: 2024-10-09 02:29:53

sed 命令及shell的if语句的运用实例的相关文章

shell脚本编程学习笔记(3)sed命令的使用

本文主要参考<sed&awk>. 我们平时使用的编辑器,比如vi,是交互式的编辑器,就是想修改哪个地方,就先定位到哪个地方,通常通过移动光标来完成.而sed是一个非交互式的面向字符流的编辑器,或者叫流编辑器.sed直接处理输入流并将结果送到标准输出.sed通过解释脚本来工作,该脚本指定了将要执行的动作. sed每次从输入文件中读取一个输入行,生成该输入行的备份,并且对改备份执行脚本中指定的指令操作.因此,对输入行所做的改动不会影响到真正的输入行.并且,sed的工作模式,是每次处理输入流

第四章 shell学习之sed命令和awk编程

sed命令 sed只是对缓冲区中原始文件的副本进行编辑,不改变源文件,所以要保存则要重定向到另一个文件 sed三种方式: 1.sed [选项] 'sed命令' 输入文件 2.sed [选项] -f sed脚本文件 输入文件 3../sed脚本文件 输入文件 其中3的sed脚本文件要以#! bin/sed -f等开头 选项: -n 不打印所有行到标准输出,默认先打印匹配的再打印所有 -e 关联多个sed命令 -f 调用sed脚本文件 定位文本: x x为指定行号 x,y 从x到y行 /patter

[shell基础]——sed命令

关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed详解 sed  [选项]  sed编辑命令  输入文件shell 命令 |  sed  [选项]   s

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器

Shell编程之---sed命令详解

sed 是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑 sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件 sed命令调用的三种方式 1.在shell命令行输出命令调用sed sed  [option]  'sed cmd'  file 2.将sed命令插入脚本 sed  [option] -f  'sed.sh'  file #vi sed.sh    sed要调用的脚本为sed.sh #/file:/a\This is a test line!!! 调用脚本 #sed

shell文本过滤编程(九):sed命令

[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] sed和awk类似,是很重要的文本过滤工具. 调用sed和调用awk一样,有三种方式: 1. 在命令行键入命令: 2.将sed命令插入脚本文件,然后调用sed: 3. 将sed命令插入脚本文件,并使sed脚本可执行. 使用sed命令行格式为: sed [option] 'sed cmd' inputfile 使用sed脚本文件,格式为: sed [option]

Shell之sed命令

sed用于一次性处理所有的编辑任务,尤为高效,为用户节省了大量的时间,sed适用于以下三种场合: 1.编辑相对交互文本编辑器而言太大的文件: 2.编辑命令太复杂,在交互式文本编辑器中难以输入的情况: 3.对文件扫描一遍,但是需要执行多个编辑函数的情况: sed 只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件.因此,如果需要保存改动内容,需要将输出重定向到另一个文件,可以使用下面格式的命令: sed  'sed命令'  input_file > result_file 该命令将sed 命

在shell中使用sed命令替换/为\/

sed命令相关: https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html https://www.cnblogs.com/DragonFire/p/6600121.html 这里我们要做的功能是: 输入一个目录"/data/data8" 在shell中将其变换为"\/data\/data8" (这是为了能在shell后边的sed命令中直接使用) 先来看看直接使用命令如何实现: echo &q

linux shell基础(五)sed命令(编辑中)

写shell有个步骤就是从一段文本中截取一段字符进行处理. 一.sed命令 sed是一种强大的流式编辑器 (stream editor for filtering and transforming text),它能够完美的使用正则表达式,逐行处理文本并把结果显示到屏幕上.sed的强项是替换文本中的特定字符. 用法:sed [选项]... {脚本(如果没有其他脚本)} [输入文件] sed [options] 'command' file(s) sed [options] -f scriptfil