linux sed grep awk命令

linux sed grep awk命令

        一、背景

        工作中需要使用shell脚本替换文件中的内容。需要实现的功能如下所示。以下的实例都是运行在shell脚本中,如需运行在终端,需要把双引号改成单引号。

        二、实例

        1)获取某个字符串所在的行数

        例如:获取nginx.conf文件的包含"listen       80;"的数据的行号,并存放到beginLine变量

        beginLine=`grep "listen       80;"$NGINX_CONF_PATH/nginx.conf -n | awk  -F ':'  '{print $1}'`

        2)在某行后面添加一行数据

        例如:在beginLine行后增加listen       443 ssl;字符串到nginx.conf文件中

         `sed -i "${beginLine}a listen       443 ssl;" nginx.conf `

        3)判断某行字符串是否包含指定的字符串

        例如:判断字符串变量linestr中是否包含变量END_MARK的值。

        END_MARK="ok"

        linestr="source sre"

        result=$(echo $linestr | grep "${END_MARK}")
            if [[ "$result" != "" ]]
           then
                echo "包含"
                break;
            else
                echo "不包含"
           fi

        4)获取文件最后一行的行数

        例如:获取nginx.conf文件的最后一行数据的行数,并存放到lastLine变量

        lastLine=`awk 'END{print NR}' nginx.conf`




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值