广告
返回顶部
首页 > 资讯 > 操作系统 >shell脚本实现字符串的动态替换方法
  • 877
分享到

shell脚本实现字符串的动态替换方法

2024-04-02 19:04:59 877人浏览 独家记忆
摘要

目录背景代码使用示例用shell实现某行字符串的替换背景 我们有时候需要完成字符串的多组替换,比如需要完成以下替换 将“小草”替换为“真是让人印象深刻”将“小狗

目录

背景

我们有时候需要完成字符串的多组替换,比如需要完成以下替换

  • 将“小草”替换为“真是让人印象深刻”
  • 将“小狗的”替换为“可爱的”
  • 将“你听清楚了吗”替换为“我说明白了吗”
  • 将“我不会”替换为“我可以学”
  • 将“打麻将”替换为“修长城”
  • 将“打游戏”替换为“计算机实践练习”

在shell脚本中全部替换的方式为${var//old/new}。我们可以通过如下命令替换:

var=${var//小草/真是让人印象深刻}
var=${var//小狗/可爱的}
var=${var//你听清楚了吗/我说明白了吗}
var=${var//我不会/我可以学}
var=${var//打麻将/修长城}
var=${var//打游戏/计算机实践练习}

但是如果替换规则有变化,比如新增一条替换规则:将“单身狗”替换为“萌新”,那就要手动修改代码。如果只是一两个脚本还好,但是如果脚本较多,还是不好维护。

此时,就需要专门写一个工具实现这种文本替换,而且最好是将替换规则和代码分离,可以让非编程人员来维护替换规则。

下文是我的实现。

代码

shell脚本:ReplaceStr.sh:

#!/bin/bash
# ------------------------------------cription : 用于追踪文件变化的脚本
# ------------------------------------------

needReplaceStr="$1"
listPath="$2"
if [ ! -f "${listPath}" ]; then
  echo "错误:脚本文件缺失!"
else
  IfsTemp=$IFS
  IFS=$';'
  fileList=$(catgthStr}))
    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"

替换规则 map.txt:
第一行为标题不可删,从第二行开始为替换规则,每条规则,以英文冒号连接新旧字符串,以英文分号结尾。

#替换规则;
小草:真是让人印象深刻;
小狗的:可爱的;
你听清楚了吗:我说明白了吗;
我不会:我可以学;
打麻将:修长城;
打游戏:计算机实践练习;
单身狗:萌新

使用示例

使用方法为:./ReplaceStr.sh ${带操作字符串} ${替换规则},例如:

在这里插入图片描述

用shell实现某行字符串的替换

1.示例:

将/SE/test.conf文件中含有#__TEST__的行替换为Http://127.0.0.1:1111;#__TEST__

2.实现: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

到此这篇关于shell脚本实现字符串的动态替换的文章就介绍到这了,更多相关shell脚本字符串替换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: shell脚本实现字符串的动态替换方法

本文链接: https://www.lsjlt.com/news/99339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本实现字符串的动态替换方法
    目录背景代码使用示例用shell实现某行字符串的替换背景 我们有时候需要完成字符串的多组替换,比如需要完成以下替换 将“小草”替换为“真是让人印象深刻”将“小狗...
    99+
    2022-10-24
  • golang reg实现替换字符串的方法
    在golang中,我们经常会遇到需要在一个字符串中查找某个字符或子串并对其进行替换的情况。golang中提供了许多内置函数来完成这个任务,其中使用正则表达式的方法在一些特定情况下能够更加方便和高效。首先,我们需要导入正则表达式的包。在gol...
    99+
    2023-05-14
  • Linux使用shell脚本处理字符串的实现方法
    这篇文章给大家分享的是有关Linux使用shell脚本处理字符串的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 截取字符串的前8位expr substr "$strin...
    99+
    2023-06-09
  • Linux shell脚本中字符串连接的方法
    如果想要在变量后面添加一个字符,可以用一下方法: $value1=home$value2=${value1}"="echo $value2 把要添加的字符串变量添加{},并且需要把$放到外面。这样输出的结...
    99+
    2022-06-04
    字符串 脚本 方法
  • shell脚本中字符串截取的多种方法
    1.#号截取,删除左边字符,保留右边字符。        代码:echo ${var#*//}    &n...
    99+
    2022-10-18
  • C#如何实现动态执行字符串脚本
    这篇文章主要介绍了C#如何实现动态执行字符串脚本的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现动态执行字符串脚本文章都会有所收获,下面我们一起来看看吧。先来代码using System;u...
    99+
    2023-07-05
  • Linux 使用shell脚本处理字符串的实现
    1. 截取字符串的前8位 expr substr "$string" 1 8 echo $string | awk '{print substr(,1,8)}' echo $string | cut -c...
    99+
    2022-06-04
    shell处理字符串 shell字符串处理
  • Shell命令中的特殊替换、模式匹配替换、字符串提取和替换的实现
    目录特殊替换模式匹配替换字符串提取和替换形式说明${var}变量本来的值${var:-word}如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。${var:=word}如果变量...
    99+
    2022-06-05
    Shell 特殊替换 Shell模式匹配替换 Shell字符串替换
  • shell脚本字符串和数组的使用操作方法
    字符串 可以使用单引号和双引号定义字符串变量但是单引号中不支持变量解析 #! /bin/bash username="mayuan" str_1="hello ${username}" str_2='hello $...
    99+
    2022-06-04
    shell 字符串数组 shell 脚本字符串 shell 脚本数组
  • Shell脚本中计算字符串长度的5种方法
    有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下: 方法1: 使用wc -L命令 wc -L可以获取到当前行的长...
    99+
    2022-06-04
    种方法 字符串 脚本
  • MySQL全局遍历替换特征字符串的实现方法
    目录1. 确定替换规则2. 找出实例中所有符合特征的库表字段3. 对上一步每个库表字段,查询n条特征数据,用以人工采样确认4. 更新特征域名数据需求:将一个mysql实例(如10.10.10.1:3306)范围内所有字段...
    99+
    2023-03-24
    MySQL全局遍历替换特征字符串 MySQL 替换特征字符串
  • shell字符串匹配的实现方法
    这篇文章主要介绍了shell字符串匹配的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、简介      Bash ...
    99+
    2023-06-09
  • Shell脚本实现查找字符串中某字符最后出现的位置
    需要对字符串查找其中某个字符最后出现的位置,这个在PHP (strrpos)或者Perl (rindex)里面都有现成函数可用的功能,在Shell里面居然一时想不出个道道来。在论坛上发贴也没人解答(不知道是...
    99+
    2022-06-04
    字符串 脚本 字符
  • Linux下shell脚本字符串变量拼接与赋值的方法
    本篇内容介绍了“Linux下shell脚本字符串变量拼接与赋值的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.字符串拼接shell脚...
    99+
    2023-06-28
  • Shell脚本如何实现查找字符串中某字符最后出现的位置
    这篇文章将为大家详细讲解有关Shell脚本如何实现查找字符串中某字符最后出现的位置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需要对字符串查找其中某个字符最后出现的位置,这个在PHP (strrpos)...
    99+
    2023-06-09
  • shell脚本字符串分割、截取和拼接的方法是什么
    今天小编给大家分享一下shell脚本字符串分割、截取和拼接的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、分割...
    99+
    2023-07-05
  • Shell实现字符串处理的方法详解
    目录大小写转化获取字符串长度替换整体替换部分替换截取补充大小写转化 # 把变量中的第一个字符换成大写 ${test^} # 把变量中的所有小写字母,全部替换为大写 ${test^^} # 把变量中的第一个字符换成小写...
    99+
    2022-09-22
  • C++实现LeetCode字型转换字符串的方法
    这篇文章主要介绍“C++实现LeetCode字型转换字符串的方法”,在日常操作中,相信很多人在C++实现LeetCode字型转换字符串的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++实现LeetCo...
    99+
    2023-06-20
  • Java利用StringBuffer替换特殊字符的方法实现
    在本实例中为保证学生输入的 Java 文件名合格,将利用 StringBuffer 类实现对 Java 文件名中的特殊符号进行替换,包括将中文状态下的“。”和全角状态下的“.”替换为...
    99+
    2022-11-12
  • Shell字符串截取的实现方法(非常详细)
    Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取。 从指定位置开始截取 这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串。 既然需要指定起始位...
    99+
    2022-06-04
    Shell 字符串截取
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作