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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值