linux sed命令替换文件端口

1、需求描述:因sed -i ‘s/旧端口/新端口/g’ 文件,替换会直接增加端口导致端口直接追加后面,因此需要修改
要求:2300替换为23003,23001替换为23004

	            <value>192.168.1.133</value>
	          </constructor-arg>
	          <constructor-arg>
	            <value>2300</value>
	          </constructor-arg>
	        </bean>
			<!--
	        <bean class="java.net.InetSocketAddress">
	          <constructor-arg>
	            <value>192.168.1.133</value>
	          </constructor-arg>
	          <constructor-arg>
	            <value>23000</value>
	          </constructor-arg>
	        </bean>

			<bean class="java.net.InetSocketAddress">
				<constructor-arg>
					<value>192.168.1.133</value>
				</constructor-arg>
				<constructor-arg>
					<value>23001</value>
				</constructor-arg>
			</bean>
		</list>

			<list>
				<bean class="java.net.InetSocketAddress">
					<constructor-arg>
						<value>192.168.1.133</value>
					</constructor-arg>
					<constructor-arg>
						<value>23004</value>
					</constructor-arg>
				</bean>
			</list>

2、sed -i ‘s/2300/23003/g’ cache.sh && sed -i ‘s/23001/23004/g’ cache.sh
执行sh替换结果就变成了这个鸟样
在这里插入图片描述
3、执行替换命令

sed -i '/<value>2300<\/value>/s/2300/23003/; /<value>23001<\/value>/s/23001/23004/' cache.sh

这个 sed 命令用于在 cache.sh 文件中执行替换操作。具体来说,这个命令寻找文件中的两个特定模式,并对这些模式中的文本进行替换。下面是这个命令的详细解释:

sed -i:
sed 是一个流编辑器,用于对输入流(或文件)进行基本的文本转换。
-i 选项表示“就地编辑”,即直接修改文件内容,而不是将结果输出到标准输出。
/2300</value>/s/2300/23003/:
第一个模式是 /2300</value>/,它寻找包含完整字符串 2300 的行。
s/2300/23003/ 是一个 sed 替换命令,表示在当前匹配的行中,将 2300 替换为 23003。但这里需要注意的是,由于前面的模式已经限定了 和 之间的文本,这个替换实际上只会影响 和 之间的 2300,而不会影响到其他地方的 2300。
/23001</value>/s/23001/23004/:
第二个模式与第一个类似,但它是用来寻找包含 23001 的行。
在这些行中,它将 23001 替换为 23004。
cache.sh:
这是 sed 命令要处理的文件名。
总结:这个 sed 命令在 cache.sh 文件中查找所有包含 2300 或 23001 的行,并将这些行中的 2300 替换为 23003,将 23001 替换为 23004。注意,由于使用了 -i 选项,这个替换操作会直接修改 cache.sh 文件。
在这里插入图片描述
拜拜!

相关推荐

  1. vim 编辑器 查找和替换文本 命令

    2024-06-07 21:08:06       48 阅读
  2. Linux 防火墙端口设置常用命令

    2024-06-07 21:08:06       34 阅读
  3. linux文件相关命令

    2024-06-07 21:08:06       31 阅读
  4. linux shell 使用mv 循环替换文件名

    2024-06-07 21:08:06       62 阅读
  5. Linux】tr命令删除空格,sed替换空行

    2024-06-07 21:08:06       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 21:08:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 21:08:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 21:08:06       82 阅读
  4. Python语言-面向对象

    2024-06-07 21:08:06       91 阅读

热门阅读

  1. 开源大模型源代码

    2024-06-07 21:08:06       25 阅读
  2. 在RT-Thread下为MPU手搓以太网MAC驱动-4

    2024-06-07 21:08:06       28 阅读
  3. PyTorch、显卡、CUDA 和 cuDNN 之间的关系

    2024-06-07 21:08:06       31 阅读
  4. type 相关的几个试验

    2024-06-07 21:08:06       31 阅读
  5. 补充SimGNN

    2024-06-07 21:08:06       27 阅读
  6. c++入门笔记——头文件

    2024-06-07 21:08:06       20 阅读
  7. 爬虫技术笔记

    2024-06-07 21:08:06       23 阅读
  8. 【学习笔记】Git常用命令

    2024-06-07 21:08:06       25 阅读
  9. 实战指南:Go语言中的OAuth2认证

    2024-06-07 21:08:06       25 阅读
  10. 简单使用vue2和elementUI自定义audio支持拖拽进度

    2024-06-07 21:08:06       31 阅读