使用shell脚本将文件中的字符串替换为另一个具有特殊字符

时间:2016-11-15 03:21:14

标签: linux sed

我尝试将下一个文件中的字符串替换为另一个具有特殊字符的字符串,如(=,“, - )。

这是服务文件,我需要自定义并再次向此文件添加命名服务

#!/bin/bash

. /etc/init.d/functions

PIDFILE=/var/run/Naming_Service.pid

PORT=

OPTIONS="-p ${PIDFILE}"

RETVAL=0

prog="Naming_Service"

    start() {
        echo -n $"Starting $prog: "

        if [ $UID -ne 0 ]; then

            RETVAL=1

            failure

        else

            setsid /usr/local/bin/Naming_Service ${OPTIONS} &

            RETVAL=$?


        fi

        echo 

        return $RETVAL

    }

在这个文件中,我想替换第一次出现的

  

OPTIONS =“ - p $ {PIDFILE}”

替换为

  

OPTIONS_1234 =“ - p $ {PIDFILE_1234} -ORBEndpoint iiop://10.12.23.34:1234”

     

OPTIONS_1235 =“ - p $ {PIDFILE_1235} -ORBEndpoint iiop://10.12.23.34:1235”

     

OPTIONS_1236 =“ - p $ {PIDFILE_1236} -ORBEndpoint iiop://10.12.23.34:1236”

我用sed命令编写了一个shell脚本文件,我遇到了特殊符号的问题。 可以请你解决这个问题

PORT_NS=13021

PIDFILE=/home/vagrant/Naming_Service_${PORT_NS}.pid

PIDFILE_13016=/home/vagrant/Naming_Service_${PORT_NS}.pid

ORIGINAL="OPTIONS="-p ${PIDFILE}""

REPLACE="OPTIONS_13016="-p ${PIDFILE_13016} -ORBEndpoint iiop://172.31.153.56:13016""

sed -i "0,/$ORIGINAL/s//$REPLACE/" "tao"

1 个答案:

答案 0 :(得分:0)

试试这个

function SearchController($scope, $http){

  $scope.search = ""


  $scope.getGames = function (){
    return $http.get("https://igdbcom-internet-game-database-v1.p.mashape.com/games/?fields=name%2Crating%2Ccover%2Curl%2Csummary%2Cfirst_release_date&limit=50&offset=0&order=release_dates.date%3Aasc&search=" + $scope.search, {"headers": {
        "x-mashape-key": "KEY",
         "accept": "application/json",
       }
     })
      .success(function(resp){
        $scope.games = resp

      })
      .error(function(data){
        console.log(data)
      })

  }

  $scope.getGames()

};

SearchController.$inject = ['$scope', '$http']

angular
  .module('app')
  .controller('SearchController',SearchController)

应该输出你需要的东西。