亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

shell腳本實現(xiàn)字符串的動態(tài)替換方法

 更新時間:2022年10月24日 14:54:30   作者:農(nóng)民工老王  
這篇文章主要介紹了shell腳本實現(xiàn)字符串的動態(tài)替換,在shell腳本中全部替換的方式為${var//old/new},本文通過實現(xiàn)腳本給大家詳細(xì)講解,需要的朋友可以參考下

背景

我們有時候需要完成字符串的多組替換,比如需要完成以下替換

  • 將“小草”替換為“真是讓人印象深刻”
  • 將“小狗的”替換為“可愛的”
  • 將“你聽清楚了嗎”替換為“我說明白了嗎”
  • 將“我不會”替換為“我可以學(xué)”
  • 將“打麻將”替換為“修長城”
  • 將“打游戲”替換為“計算機(jī)實踐練習(xí)”

在shell腳本中全部替換的方式為${var//old/new}。我們可以通過如下命令替換:

var=${var//小草/真是讓人印象深刻}
var=${var//小狗/可愛的}
var=${var//你聽清楚了嗎/我說明白了嗎}
var=${var//我不會/我可以學(xué)}
var=${var//打麻將/修長城}
var=${var//打游戲/計算機(jī)實踐練習(xí)}

但是如果替換規(guī)則有變化,比如新增一條替換規(guī)則:將“單身狗”替換為“萌新”,那就要手動修改代碼。如果只是一兩個腳本還好,但是如果腳本較多,還是不好維護(hù)。

此時,就需要專門寫一個工具實現(xiàn)這種文本替換,而且最好是將替換規(guī)則和代碼分離,可以讓非編程人員來維護(hù)替換規(guī)則。

下文是我的實現(xiàn)。

代碼

shell腳本:ReplaceStr.sh:

#!/bin/bash
# ------------------------------------------
# Filename    : ReplaceStr.sh
# Version     : 1.1
# Date        : 2022-10-23 16:04:25
# Author      : 農(nóng)民工老王@CSDN
# Email       : scwja@qq.com
# Website     : https://blog.csdn.net/monarch91
# Description : 用于追蹤文件變化的腳本
# ------------------------------------------

needReplaceStr="$1"
listPath="$2"
if [ ! -f "${listPath}" ]; then
  echo "錯誤:腳本文件缺失!"
else
  IfsTemp=$IFS
  IFS=$';'
  fileList=$(cat "${listPath}"|xargs)
  fileArray=(${fileList})
  for item in "${fileArray[@]}"
  do
    itemLengthStr=$(echo ${item}|wc -L)
    itemLength=$((${itemLengthStr}))
    if [ ${itemLength} -gt 3  ] && [ "${item:0:1}" != "#" ]; then
      v=(${item//:/;})
      srcStr="${v[0]:1}"
      tarStr="${v[1]}"
      needReplaceStr=${needReplaceStr//${srcStr}/${tarStr}}
      needReplaceStr=${needReplaceStr//${srcStr^^}/${tarStr^^}}
      needReplaceStr=${needReplaceStr//${srcStr,,}/${tarStr,,}}
    fi
  done
  IFS=$IfsTemp
fi

echo "$needReplaceStr"

替換規(guī)則 map.txt:
第一行為標(biāo)題不可刪,從第二行開始為替換規(guī)則,每條規(guī)則,以英文冒號連接新舊字符串,以英文分號結(jié)尾。

#替換規(guī)則;
小草:真是讓人印象深刻;
小狗的:可愛的;
你聽清楚了嗎:我說明白了嗎;
我不會:我可以學(xué);
打麻將:修長城;
打游戲:計算機(jī)實踐練習(xí);
單身狗:萌新

使用示例

使用方法為:./ReplaceStr.sh ${帶操作字符串} ${替換規(guī)則},例如:

在這里插入圖片描述

用shell實現(xiàn)某行字符串的替換

1.示例:

將/SE/test.conf文件中含有#__TEST__的行替換為http://127.0.0.1:1111;#__TEST__

2.實現(xiàn):test_conf_contrl.sh

#/bin/sh
http=$1
test_conf=/SE/test.conf
Line=`cat test_conf | grep -wn "#__TEST__" | awk -F: '{print $1}'`
sed -i ''$Line'd' $test_conf
sed -i ''$Line'i '$1';#__TEST__' $test_conf

到此這篇關(guān)于shell腳本實現(xiàn)字符串的動態(tài)替換的文章就介紹到這了,更多相關(guān)shell腳本字符串替換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • shell基礎(chǔ)學(xué)習(xí)中的字符串操作、for循環(huán)語句示例

    shell基礎(chǔ)學(xué)習(xí)中的字符串操作、for循環(huán)語句示例

    這篇文章主要介紹了shell基礎(chǔ)學(xué)習(xí)中的字符串操作、for循環(huán)語句示例
    2014-04-04
  • 寫一個shell腳本實現(xiàn)視頻處理

    寫一個shell腳本實現(xiàn)視頻處理

    Linux和Unix都擁有很多能夠處理圖像和視頻文件的應(yīng)用程序和工具,下面這篇文章主要給大家介紹了關(guān)于如何寫一個shell腳本來實現(xiàn)視頻處理的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Linux中的host命令應(yīng)用實例詳解

    Linux中的host命令應(yīng)用實例詳解

    這篇文章主要介紹了Linux中的host命令應(yīng)用舉例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 監(jiān)控服務(wù)器swap并重啟php的Shell腳本

    監(jiān)控服務(wù)器swap并重啟php的Shell腳本

    有一臺服務(wù)器老是交換扇區(qū)占滿然后失去響應(yīng),很煩,因為加載了以前別人寫的一個php擴(kuò)展,效率低,資源占用大,悲劇的是現(xiàn)在還沒有可以替換的東西
    2014-03-03
  • Linux自定義防誤刪腳本的思路與測試

    Linux自定義防誤刪腳本的思路與測試

    相信很多朋友都遇到過在linux下誤刪除文件的時候,此刻的心中仿佛有無數(shù)的羊駝在奔騰,下面這篇文章主要給大家介紹了關(guān)于Linux自定義防誤刪腳本的思路與測試的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • Linux下使用Shell腳本獲取終端寬度的解決方法

    Linux下使用Shell腳本獲取終端寬度的解決方法

    這篇文章主要介紹了Linux下使用Shell腳本獲取終端寬度的解決方法,需要的朋友可以參考下
    2018-11-11
  • Linux Shell中三種引號的用法及區(qū)別

    Linux Shell中三種引號的用法及區(qū)別

    Linux Shell中有三種引號,分別為雙引號(" ")、單引號(' ')以及反引號(` `)。那么這三種引號有什么區(qū)別呢?下面腳本之家小編給大家介紹下用法及區(qū)別,需要的的朋友參考下
    2017-03-03
  • 簡單的Linux查找后門思路和shell腳本分享

    簡單的Linux查找后門思路和shell腳本分享

    這篇文章主要介紹了簡單的Linux查找后門思路和shell腳本分享,本文的方法相對簡單,提了一個思路和簡單的Shell實現(xiàn)腳本,需要的朋友可以參考下
    2014-06-06
  • Shell函數(shù)的7種用法介紹

    Shell函數(shù)的7種用法介紹

    這篇文章主要介紹了Shell函數(shù)的7種用法介紹,本文講解了在shell文件內(nèi)部定義函數(shù)并引用、返回值、函數(shù)輸出、向函數(shù)傳遞參數(shù)、全局變量與局部變量等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Shell腳本位置參數(shù)的具體使用

    Shell腳本位置參數(shù)的具體使用

    本文主要介紹了Shell腳本位置參數(shù)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論