批量修改目录下文件内容信息 (sed)

批量修改文件内容

#! /bin/bash

function read_dir(){
for file in `ls $1` 
do
 if [ -d $1"/"$file ] ;then
	read_dir $1"/"$file
 elif [ "mysqlconfig.json" == ${file} ] ; then 
	pathInfo=(${1//\// })  
	 
	 if [ "conf_dev" == ${pathInfo[-1]} ] ;then  
	 
		 echo $1"/"$file   
		# sed -i "s/\"database\"\: \"oldDBname/\"database\"\: \"newDBname/g"  $1"/"$file 
		# sed -i "s/\"host\"\: \"192.168.234.41\"/\"host\"\: \"mysql-db\"/g"  $1"/"$file 
		# sed -i "s/\"user\"\: \"root\"/\"user\"\: \"root\"/g"  $1"/"$file 
		# sed -i "s/\"password\"\: \"mypwd\"/\"password\"\: \"pwdpwd\"/g"  $1"/"$file 
	 fi
 
 
 
 fi
done
} 
 
# 代替conf_dev的db
read_dir $1

批量复制文件

#! /bin/bash

function cpConf2Prod(){
for file in `ls $1` 
do
 if [ -d $1"/"$file ]  ; then
  
   if [ "conf_dev" == $file ] ; then 
   
	## 创建编译生成的包目录
	if [ ! -d "${1}/conf_prod/" ]; then 
		mkdir -p "${1}/conf_prod/"
		echo "${1}/conf_prod/ created!"
	fi
		
    #confDevDir=$1"/"$file"/*"
	
	## 不能直接  cp -rf  "${1}/${file}/*" "${1}/conf_prod/"
	## 会报 找不到文件
	
    confDevDir="${1}/${file}/*"
	cp -rf  $confDevDir "${1}/conf_prod/"
	echo "cp -rf $1/$file/*  $1/conf_prod"
   else 
	 cpConf2Prod $1"/"$file
   fi 
 
 fi
done
} 
 
# 复制conf_dev 到conf_prod
#cpConf2Prod $1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: sed是一种流编辑器,可以用于批量替换文件内容。它可以读取文件中的文本,并对其进行修改,然后将修改后的文本输出到标准输出或者写回原文件。使用sed进行批量替换文件内容的方法是,先使用sed命令读取文件中的文本,然后使用替换命令将需要替换的文本替换为新的文本。最后,将修改后的文本输出到标准输出或者写回原文件。 ### 回答2: sed是一种文本编辑器,可以帮助用户批量替换文件中的内容。它支持正则表达式,可以用来匹配和替换文本。在命令行中使用sed可以快速,高效地完成批量替换文件内容的任务,下面我们就来详细介绍一下。 sed命令格式: sed [选项参数] '[sed命令]' [文件] 选项参数: -i 表示直接在文件上进行修改,如果不加-i选项,sed只是对文本进行替换操作,不对原文件进行修改。 -e 执行多个命令,用分号隔开。 sed命令: 1. s//:替换命令 最常用的sed命令是s命令,用于替换文本。 例如:s/old/new/可以将文件中的old替换为new。 2. 替换指定行: 例:sed –i '3s/old/new/g' file.txt 将文本文件file.txt中的第三行匹配的内容的"old"替换为"new",g代表全文替换。 3. 替换指定行的指定字符串: 例:sed -i '/word/s/old/new/g' filename 将filename文件中,包含word的行中的old替换为new,g代表全文替换。 4. 替换指定行范围内的指定字符串: 例:sed -i '2,5s/old/new/g' file.txt 将文本文件file.txt中的第2行和第5行之前(不包括第5行)匹配的内容的"old"替换为"new",g代表全文替换。 总之,sed命令是一种高效、灵活、强大的批量替换文件内容的工具,可以极大地提高用户的工作效率。需要注意的是,在使用sed命令进行批量替换的时候,一定要谨慎操作,确保修改内容是正确的,避免不必要的损失。 ### 回答3: sed是一种强大的文本处理工具,它可以用来编辑文件中的文本,批量替换文件内容sed 最常见的用途之一。 sed命令的用法非常简单,它的基本语法如下: ``` sed [-nefri] 'command' 文件名 ``` 其中,-n 选项表示只打印出经过处理的文本行,而不是全部打印出来;-e 选项表示指定要执行的 sed 命令;-f 选项表示指定一个包含 sed 命令的文件,可以在文件中存储多个命令;-r 选项表示使用扩展的正则表达式;-i 选项表示在原文件中直接修改,而不是在终端输出。 sed命令中的 command 包含一个或多个 sed 的操作命令,比如 s 命令表示替换字符串,d 命令表示删除指定的文本行等。 下面我们以一个具体的例子来演示如何使用 sed 批量替换文件内容: 假设我们有多个文件包含 "hello,world" 字符串,现在需要将字符串中的逗号替换为句号,可以使用如下命令: ``` sed -i 's/,/./' 文件名 ``` 其中,-i 选项表示直接在文件修改,s/old/new/ 表示将 old 替换为 new,/ 表示分隔符,可以使用任何字符作为分隔符。 如果需要替换多个文件中的内容,可以使用通配符 * 批量处理: ``` sed -i 's/,/./' *.txt ``` 以上命令将批量替换所有的 .txt 文件中的 "hello,world" 字符串。 当然,sed 命令不仅仅能够进行文本替换,还可以用于删除指定文本行、插入新文本行、正则表达式匹配等操作,可以根据不同的需求选择合适的命令进行操作。 总之,sed 是一种非常实用的文本处理工具,掌握 sed 命令的用法可以让我们更加高效地处理文件中的文本内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值