`
steven-zhou
  • 浏览: 212349 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

bash实现:对配置文件的增、删、改

    博客分类:
  • Bash
阅读更多
#!/bin/sh
#
# Name: add_del_mod.sh configure file operation script.
#
# Version:  1.0.0   05-Dec-2008
# Author :  tcaosmail@gmail.com
#
# Description:
#   add, delete and modify specified record in a
#   configure file according to parameters.
#
# Synopsis: add_del_mod FILE [ADD|DEL|MOD] [ROW_NUM] [LINE_CONTENT]
#
# Examples:
#   add_del_mod /etc/ipsecmc/userip.conf ADD 1 "olymuser 123456 192.168.135.1"
#   add_del_mod /etc/ipsecmc/userip.conf MOD 1 "olymuser 123456 10.0.0.1"
#   add_del_mod /etc/ipsecmc/userip.conf DEL 1
#
[ "$#" -lt "3" ] && echo "too few parameters!" && exit 1

FILE="$1"
ACTION="$2"
NROW="$3"
TMPFILE="$FILE-$$"

# check file exist or not.
[ ! -e "$FILE" ] && echo "FILE: [$FILE] not exist!" && exit 1
# check row number is a pure number.
[ `echo $NROW | grep -c '^[0-9]*$'` != 1 ] && echo "ROW_NUM: [$NROW] is not digit!" \ 
&& exit 1

case "$ACTION" in
    "ADD")
        [ "$#" != "4" ] && echo "too few parameters for action [ADD]!" && exit 1
        if [ "$NROW" == "0" ]; then # append to the end of file.
            echo "$4" >> $FILE
        else
            cat $FILE | grep -v '^$' | sed "${NROW}i $4" > $TMPFILE
            mv $TMPFILE $FILE
        fi
        ;;
    "MOD")
        [ "$#" != "4" ] && echo "too few parameters for action [MOD]!" && exit 1
        cat $FILE | grep -v '^$' | sed "${NROW}c $4" > $TMPFILE
        mv $TMPFILE $FILE
        ;;
    "DEL")
        cat $FILE | grep -v '^$' | sed "${NROW}d" > $TMPFILE
        mv $TMPFILE $FILE
        ;;
    *)
        echo "action [$ACTION] invalid!"
        exit 1
        ;;
esac

exit 0
分享到:
评论
2 楼 steven-zhou 2008-12-15  
主要是想提供一个增、删、改的统一接口,给C程序调用。
1 楼 wosmvp 2008-12-15  
直接使用sed不更好吗?

相关推荐

    linux增删改查用户和组

    ### Linux 增删改查用户和组 在 Linux 系统中,用户管理和权限控制是非常重要的组成部分。本文将详细介绍如何在 Linux 系统中进行用户和组的基本操作,包括添加、删除、修改以及查询。 #### 一、增删改查组 1. **...

    基于Laravel8.x的学生信息增删改查和列表展示示例

    在本文中,我们将深入探讨如何使用Laravel 8.x框架实现学生信息的增删改查(CRUD)功能以及列表展示。Laravel是一款基于PHP的开源Web应用框架,以其优雅的语法和强大的功能深受开发者喜爱。它提供了丰富的工具,使得...

    vue自动化创建简单的模块,简单的table查询增删改查页面

    在构建Web应用时,尤其在处理数据展示、交互和管理功能时,常常需要创建包含查询、增删改查(CRUD)操作的表格页面。本教程将介绍如何使用Vue.js自动化创建这样的模块。 首先,我们需要安装必要的工具。`plop`是一...

    使用Django开发简单接口实现文章增删改查

    ### 使用Django开发简单接口实现文章增删改查 #### 一、概述 本文将详细介绍如何使用Django框架开发一个简单的API,实现对文章的基本CRUD(Create, Read, Update, Delete)操作。通过本教程,您将了解从环境搭建到...

    python对配置文件.ini进行增删改查操作的方法示例

    ### Python 对 `.ini` 配置文件进行增删改查操作详解 #### 一、引言 在软件开发过程中,`.ini` 文件是一种常见的配置文件格式,用于存储应用程序的配置参数,使程序更加灵活和可配置。Python 提供了多种方式来读取...

    小白学习记录,使用 egg.js + mysql 实现的一个简单的增删改查,需用 postman 调试.zip

    总结来说,本项目展示了如何利用 Egg.js 和 MySQL 构建一个基础的 RESTful API 服务,实现了对用户数据的增删改查功能。在实际开发中,还需要考虑错误处理、验证、权限控制等更多细节,以确保应用程序的健壮性和安全...

    Item_增删改查_EFCORE2.2中文文档_

    标题"Item_增删改查_EFCORE2.2中文文档_"表明这个压缩包包含的是关于使用Entity Framework Core(EFCORE)2.2版本进行数据库操作,特别是CRUD(创建、读取、更新、删除)功能的中文文档。EFCORE是微软提供的一个轻量...

    Nodejs + sequelize 实现增删改查操作

    在本文中,我们将深入探讨如何使用Node.js和Sequelize库来实现数据库的增删改查操作。Sequelize是一个流行的ORM(对象关系映射)工具,它支持多种数据库,包括MySQL,允许开发者以面向对象的方式处理数据库操作。 ...

    SSH增删改例子

    以下是对SSH增删改查操作的详细解释: **一、SSH的安装与配置** 在开始SSH操作之前,你需要在你的系统上安装SSH服务器(如OpenSSH)和服务端软件,并配置相应的公钥和私钥。在Linux系统中,通常使用`apt-get`或`...

    MongoDB安装以及配置文件

    - MongoDB的基础操作,如增删改查(CRUD)。 - 数据模型设计,包括文档、集合和数据库的概念。 - MongoDB的复制集(Replica Set)配置,实现高可用性。 - 分片(Sharding)配置,以支持大数据量的横向扩展。 - 使用...

    SSH(增、删、查)

    "增、删、查"通常指的是数据库操作中的CRUD(Create、Read、Update、Delete),但在SSH的上下文中,我们可以理解为对远程服务器进行的操作。 1. **SSH连接基础** - **建立连接**:SSH客户端通过输入服务器的IP地址...

    LEDE项目:SMB Samba共享配置(又名Windows文件共享)。1

    4. **添加共享**:在Samba配置文件中,创建一个新的`sambashare`部分,定义共享的名称、路径以及访问权限。例如: ```bash config 'sambashare' option name 'share_name' option path '/mnt/sda3' option ...

    基于MyBatis框架的简易商城系统.zip

    商品的增删改查操作。 商品分类管理。 商品参数管理。 2. 订单管理 订单的创建、查询、更新和删除。 订单配送信息管理。 3. 用户管理 用户信息的增删改查。 用户订单管理。 4. 数据库交互 使用MyBatis...

    sybase建删库命令总结.txt

    根据给定的文件信息,以下是对Sybase数据库管理系统中建删库命令的详细知识点总结: ### 1. 修改用户密码 在Sybase中,修改用户的密码可以通过`sp_password`存储过程来实现。语法如下: ``` sp_password caller_...

    Python库 | pymlconf-2.5.9-py3-none-any.whl

    这样,开发者可以直接通过Python代码对配置进行增删改查,而无需关心底层XML的细节。 **3. 动态配置** `pymlconf` 支持动态加载和更新配置,这意味着在程序运行时可以修改配置,而不需要重启服务。这对于需要根据...

    Django后端新手如何初始化配置

    本文将详细指导你完成 Django 项目的初始化配置,并重点介绍如何连接数据库以及如何实现基本的增删改查接口。 #### 1. 创建 Django 项目 首先,你需要创建一个新的 Django 项目。这一步是通过命令行工具 `django-...

    课程大作业基于Node.js的四级单词背诵网站源码+项目说明.zip

    前端通过Axios.js向后台数据库发送异步的请求,实现对数据库内容的增删改查,最后将后台响应的异步的信息进行处理后渲染在页面相应的位置。## 项目运行要运行测试,运行以下命令1. 安装项目的相关依赖包```bash npm ...

    redis安装配置.rar

    Redis提供了丰富的命令行工具`redis-cli`,可以进行数据的增删改查操作。例如,设置键值对: ```bash SET key value ``` 获取键值: ```bash GET key ``` 除此之外,还有HSET/HGET用于操作哈希、LPush/LPop处理...

Global site tag (gtag.js) - Google Analytics