用sed实现路径替换

#!/bin/bash

for i in $(find /opt/central-images-bak/ -type f -name *.jpg)

do

src=/opt/central-images-bak/opt/central-images

dst=/opt/central-images

direc=$((dirname $i) | sed "s:${src}:${dst}:g")

mv $i $direc

done

把图片服务器的备份恢复到原先路径,用sed把路径替换为原图片服务器路径

一般情况下,sed ‘s/pattern/pattern/flag‘ 是用/来进行分隔的。但这里的源字符串和替换字符串中,都带有字符/,如果再用/进行分隔,就会产生冲突。所以,改用了:进行分隔

时间: 2024-11-18 00:08:34

用sed实现路径替换的相关文章

Gulp学习指南之CSS合并、压缩与MD5命名及路径替换(转载)

本文转载自: Gulp学习指南之CSS合并.压缩与MD5命名及路径替换

dedecms织梦移站数据库替换路径替换命令

1.系统设置路径替换 update dede_sysconfig set value='http://afish.cnblogs.com' where varname='cfg_basehost'; update dede_sysconfig set value='/afish' where varname='cfg_cmspath'; update dede_sysconfig set value='/afish' where varname='cfg_indexurl'; 2.栏目文章中的路

sed关于变量替换的问题

今天说一下sed变量替换的问题这个问题主要还是一个群友提问的开始我也没有做出来 [email protected]:~/pwb/tmp# echo $a 9 [email protected]:~/pwb/tmp# sed 's/1/$a/g' ^C [email protected]:~/pwb/tmp# echo 123|sed 's/1/$a/g' $a23 就像是这样带着变量的替换后来查了以下资料有一种比较简单的方法主要就是平时我们用sed的时候都是用的单引号这里替换变量就是因为bash

sed 中如何替换换行符

使用如下解决方案: sed ':a;N;$!ba;s/\n/ /g' 这将在一个循环里读取整个文件,然后将换行符替换成一个空格. 说明: 通过 :a创建一个标记 通过N追加当前行和下一行到模式区域 如果处于最后一行前,跳转到之前的标记处. $!ba ($! 意思是不在最后一行做这操作 (最后一行就被当成最后的一行)). 最后置换操作把模式区域(就是整个文件)的每一个换行符换成一个空格. 示例追加: $ echo -e "1\n2" | sed ':a;N;$!ba;s/\n/ /g'1

sed匹配与替换

今天发现之前创建nagios用户是在/bin/bash下的,存在一定的安装隐患,由于涉及的服务器数量较多,所以采用saltstack命令行批量更改. 利用sed匹配字符串(nagios)所在行,并且替换这行的一些关键字(/bin/bash) salt '*' cmd.run "sed -i '/nagios/s#/bin/bash#/sbin/nologin#' /etc/passwd" 首先匹配nagios用户这一行,s替换,#为分隔符,将/bin/bash替换为/sbin/nolo

sed 每次只替换一行

#!/bin/bash for a in ` cat tihuan-IMID-suiji.txt ` do                    被替换内容                   被替换内容 sed -i "1,/21001035/s/21001035/$a/"   tihuan.txt done

os x下使用sed进行字符串替换

先举个栗子: 你想要在某个文件下下面对某写文件的 链接 或者 密码进行批量的替换,并且不想产生新的备份文件.进过一顿学习,你可能会找到类似这样的命令: sed -i 's/old_link/new_link/g' * 赶紧跑去一试,在GNU下是可以的,不过在os x下你应该会得到如下的返回结果: command a expects \ followed by text 哎哟喂,别人都可以,为啥我的不信,特么的,到底发生了什么: 其实这个事情是这样的,如果你想使用 -i 选项,你需要提供一个备份文

sed命令及替换文件内容

一.sed (三剑客老二) 1.sed 替换文件内容 sed  s###g  file  前面两个#中的是原内容,后两个#中的是替换的内容 例:将a.txt文件中的linux替换成java 但是,此时改的只是输出,源文件内容并没有改. 2.sed -i s###g 改变文件内容(可将 -i 理解成insert) sed -i s#linux#java#g a.txt 3.find / type f -name “a.txt” |xargs sed -i s#linux#java#g 查找所有目录

通过sed将一个变量替换另外一个变量

原始文件 networks: default: ipam: config: - gateway: 10.255.3.1 subnet: 10.255.3.0/24 driver: default services: authorization: depends_on: - database environment: ENABLE_AUTHORIZATION: 'false' JDBC_URL: jdbc:h2:tcp://database:1521/uaa;DATABASE_TO_UPPER=f