shell 文件内容替换为变量

<xml' 'version="1.0"' 'encoding="ISO-8859-1"' '>' '<ADI>' '<Metadata>' '<AMS' 'Provider="InDemand" 比如把InDemand字符替换成一个变量,变量是从其他关系生成的字符串,然后保存为新的文件

shell编程中替换文件中的内容用到四个命sed,find ,grep,awk
下面是三种使用替换的方法
方法一:find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的”http://repo1.maven.org/maven2“ 替换为”http://localhost:8081/nexus/content/groups/public“.
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content /groups/public|g'这里用到了Perl语言,
perl -pi -e 在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.
从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。

find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'

方法二:Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
用sed命令可以批量替换多个文件中的 字符串。
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
例如:我要把mahuinan替换 为huinanma,执行命令:
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
这是目前linux最简单的批量替换字符串命令了!
具体格式如下:
sed -i "s/oldString/newString/g" `grep oldString -rl /path`
实例代码:sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa`
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`

方法三:在日程的开发过程中,可能大家会遇到将某个变量名修改 为另一个变量名的情况,如果这个变量是一个局部变量的话,vi足以胜任,但是如果是某个全局变量的话,并且在很多文件中进行了使用,这个时候使用vi就是 一个不明智的选择。这里给出一个简单的shell命令,可以一次性将所有文件中的指定字符串进行修改:

grep "abc" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/abc/abcde/g'

批量替换 配置文件中的IP:
grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/172\.0\.0\.1/g'
温馨提示:内容为网友见解,仅供参考
无其他回答

如何在shell脚本中修改添加替换指定文件中的内容
更高级的操作是利用`$()`表达式,这允许你直接在命令中执行b.sh,并将输出内容保存到变量中,从而实现替换或修改文件内容的目的。通过这些方法,你可以在shell脚本中灵活地操作和管理文件内容,满足你的需求。

Shell 之变量替换
变量值之替换 若需对变量值进行修改,shell提供直接替换功能。只需在替换操作中指定新值,即可完成替换。这在处理用户输入或动态生成脚本内容时尤为有用。变量值之大小写转换 在某些情况下,可能需要将变量值转换为全大写或全小写形式。shell中提供了相应的命令实现这一功能,简化了文本处理流程。变量值之...

shell 文本 合并 变量 替换
cat c.txt 问题二:str=have a ${mm}day #这里赋值是不正确的,str="have a ${mm}day"

Shell 代换如何处理转义字符和命令输出?
例如,当Shell遇到像`$a`这样的变量名时,会将其真实值插入到文本中,如`echo -e "Value of a is $a\\n"`,这里的`\\n`会被替换为换行符。命令替换则允许你执行一个命令并将其输出直接插入到命令行中,如`DATE=`date`echo "Date is $DATE"`。在语法层面,命令替换使用反引号包围,如`comma...

shell脚本sed命令如何使用变量替换掉包含指定字符串的整行
sed "s\/zip\/$zip\/g" file sed双引号可以识别变量

用shell把文档中某个数值提取到变量中如何实现?
在一个shell脚本中可以用 var=`cat test.log|head -1|awk -F= '{print $2}'`值在var这个变量中

Linux下的shell编程 如何替换文件中的内容
可以这样做:方法1:sed -i 's\/被替换的内容\/要替换成的内容\/' file 方法2:sed 's\/被替换的内容\/要替换成的内容\/g' file > file.out;mv file.out file。

linux脚本文件中怎么从文件中读取数据并赋值给变量?
在Linux脚本中,读取文件内容并将其赋值给变量的操作步骤如下:1、首先,创建一个新的脚本文件,比如shell.sh,通过命令行工具vi打开并创建:`vi shell.sh`,新建文件后,你需要在其中开始编写你的脚本。2、在文件的开头,添加脚本的执行环境声明,即#!\/bin\/bash,这是告诉系统使用bash shell来解释...

shell查询文本,并将内容输入变量
写个函数可以实现那个功能 !\/bin\/bash hash(){ while read var do if [[ $(echo $var | awk '{print $1}') = $1 ]]then echo $var | awk '{print $2}'fi done < 'yourfile' #这里写你需要读取的文件名 } key=1001 name=$(hash $key)echo "name is $name"...

shell 如何将文本中的内容每一行以字符串分别输出到一个变量,方便操作...
index=0while read vardoa[$index]="$var"index=`expr $index + 1`done < "a.txt"echo ${a[*]}a.txt的第一行输出到 变量${a[0]} 第n行输出至变量${a[n-1]}

相似回答