最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

背景

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

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

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

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

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

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

下文是我的實(shí)現(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 "錯(cuò)誤:腳本文件缺失!"
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ī)則,以英文冒號(hào)連接新舊字符串,以英文分號(hào)結(jié)尾。

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

使用示例

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

在這里插入圖片描述

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

1.示例:

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

2.實(shí)現(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腳本實(shí)現(xiàn)字符串的動(dòng)態(tài)替換的文章就介紹到這了,更多相關(guān)shell腳本字符串替換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用于檢測(cè)進(jìn)程的shell腳本代碼小結(jié)

    用于檢測(cè)進(jìn)程的shell腳本代碼小結(jié)

    本文介紹一段shell腳本,它可以檢測(cè)某進(jìn)程或某服務(wù)是否正在運(yùn)行,然后以郵件通知。有需要的朋友參考下
    2013-11-11
  • shell腳本中/bin/bash的作用引號(hào)與括號(hào)的使用小結(jié)

    shell腳本中/bin/bash的作用引號(hào)與括號(hào)的使用小結(jié)

    shell腳本通常第一句是#!/bin/bash,在很多情況中,如果沒有設(shè)置好這一行,那么該程序很可能無(wú)法執(zhí)行,#!/bin/bash是指此腳本使用/bin/bash來(lái)解釋執(zhí)行,本文給大家介紹shell腳本中/bin/bash的作用,引號(hào)與括號(hào)的使用,感興趣的朋友一起看看吧
    2023-12-12
  • linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法

    linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法

    linux crontab 命令,最小的執(zhí)行時(shí)間是一分鐘。這篇文章主要介紹了linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法,需要的朋友可以參考下
    2018-03-03
  • linux下文件描述符限制問題

    linux下文件描述符限制問題

    這篇文章主要介紹了linux下文件描述符限制問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Shell內(nèi)置命令教程之a(chǎn)lias和echo

    Shell內(nèi)置命令教程之a(chǎn)lias和echo

    我們?nèi)粘J褂胹hell輸入命令得到結(jié)果的方式是交互式的方式,而shell腳本使用的是非交互式方式,shell提供了alias功能來(lái)簡(jiǎn)化我們的日常操作,下面這篇文章主要給大家介紹了關(guān)于Shell內(nèi)置命令教程之a(chǎn)lias和echo的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 在 SHELL 腳本中調(diào)用另一個(gè) SHELL 腳本的方法(報(bào)錯(cuò): go:not found)

    在 SHELL 腳本中調(diào)用另一個(gè) SHELL 腳本的方法(報(bào)錯(cuò): go

    在Linux平臺(tái)上開發(fā),經(jīng)常會(huì)在console(控制臺(tái))上執(zhí)行另外一個(gè)腳本文件,經(jīng)常用的方法有:./my.sh 或 source my.sh 或 . my.sh;這三種方法有什么不同呢?這篇文章主要介紹了在 SHELL 腳本中調(diào)用另一個(gè) SHELL 腳本的方法(報(bào)錯(cuò): go:not found),需要的朋友可以參考下
    2023-08-08
  • Linux Netcat(nc)命令的使用方法詳解

    Linux Netcat(nc)命令的使用方法詳解

    在網(wǎng)絡(luò)編程和網(wǎng)絡(luò)安全領(lǐng)域,Netcat(簡(jiǎn)稱 nc)是一個(gè)功能強(qiáng)大的工具,它可以用來(lái)監(jiān)聽網(wǎng)絡(luò)端口、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)等,Netcat 因其靈活性和強(qiáng)大的功能,被廣泛用于網(wǎng)絡(luò)調(diào)試和安全測(cè)試,本文介紹了Linux Netcat(nc)命令的使用方法,需要的朋友可以參考下
    2024-12-12
  • Linux shell腳本實(shí)現(xiàn)CPU預(yù)警

    Linux shell腳本實(shí)現(xiàn)CPU預(yù)警

    這篇文章主要介紹了Linux shell腳本實(shí)現(xiàn)CPU預(yù)警的方法,并附上代碼以及用法,有需要的小伙伴可以參考下。
    2015-03-03
  • Linux中10個(gè)方便的Bash別名

    Linux中10個(gè)方便的Bash別名

    今天小編就為大家分享一篇關(guān)于Linux中10個(gè)方便的Bash別名,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-09-09
  • shell腳本快速刪除服務(wù)器指定目錄下文件(最新方法)

    shell腳本快速刪除服務(wù)器指定目錄下文件(最新方法)

    這篇文章主要介紹了shell腳本快速刪除服務(wù)器指定目錄下文件(最新方法),包括刪除4天前的文件及只刪除指定文件,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07

最新評(píng)論

昌都县| 福鼎市| 涟水县| 中卫市| 子长县| 安福县| 江油市| 石棉县| 龙井市| 施甸县| 阿拉善盟| 安福县| 承德市| 枝江市| 利川市| 松溪县| 长海县| 宜兰县| 江孜县| 达孜县| 临武县| 凤冈县| 冷水江市| 新津县| 阳东县| 辉南县| 游戏| 井研县| 临清市| 临邑县| 库尔勒市| 卫辉市| 北流市| 江都市| 乐都县| 昆明市| 青浦区| 临泽县| 修武县| 蛟河市| 临武县|