linux脚本替换字符串
❶ 总结linux替换字符串的几种方法
换个角度,替换/bin为/bin就不会有错啦
echo ${path/\/bin/\/bin} 其中/前面要加转义符\
或者用sed来替换,
echo $path | sed 's#/bin#/bin#g'格式为s#a#b#,将a替换为b。
后面加个g表示全局替换,即替换所有出现的。
也可以这样写:
echo $path | sed 's#[^s]bin#/bin#g'[^s]在正则中表示不是s的一个字符。这里只有两种情况,一种是sbin,一种是/bin,这样sbin就可以被排除了。
❷ linux shell 脚本 字符串替换问题
shell脚本中,单引号内的$是不被解释的
perl支持双引号吗?改成双引号试试
❸ linux替换文件中的字符串怎么使用
(一)通过vi编辑器来替换。
参考博文:
http://www.linuxdiyf.com/viewarticle.php?id=99843
http://kingaragorn.javaeye.com/blog/467308
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用编辑软件进行替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g
可以把文件中所有路径/usr/bin换成/bin
(二)Sumly法直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
例1
执行命令:
perl -p -i -e "s/China/Sumly/g" /www/*.htm /www/*.txt
上面的意思是说将www文件夹下所有的htm和txt文件中的“China”都替换为“Sumly”
例2
执行命令:
perl -p -i -e "s/memory_proction/memory_proction2/g" ./*.sql
上面的意思是将当前目录下所有的sql文件中的“memory_proction”替换成“memory_proction2”
❹ linux 下用shell sed替换文本中的字符串
sed是行编辑器,用这个工具非常困难。可以参考以下脚本:
#!/bin/bash
while read line
do
if echo $line | grep 'Hour$' >/dev/null; then
echo $line | tr -d '\n'
else
echo $line
fi
done < $1
1,将上面脚本保存为fuck.sh
2,chmod 755 fuck.sh
3,./fuck.sh file
❺ linux替换文件中的字符串怎么使用
可以通过shell脚本替换字符串方式,如果知道第几行,格式如下:
hello
字符串内容可能是任意字符串,如何把>和<中间的字符串替换为我的字符串比如world
具体例子:
比如要替换第128行
sed
-i
'128s/>.*world
'
test.txt
这样子</pre
评论
0
0
加载更多
❻ 如何在linux环境下实现txt文本的字符串替换
#!/usr/bin/python
import
sys
fin=open(sys.argv[1])
fout=open(sys.argv[1]+'.new',"w")
line=fin.readline()
while
line!='':
line=line.replace(sys.argv[2],sys.argv[3])
fout.write(line)
line=fin.readline()
fin.close()
fout.close()
各linux里基本都有python的,将上面保存为rp.py,替换某文件中字符串格式
./rp.py
~/tmp.txt
aaa
xxx
将自己家目录中的tmp.txt中所有aaa替换为xxx
新产生的文件也在tmp.txt目录中,叫tmp.txt.new
❼ linux如何替换文件指定行的特定位置字符串
可以通过Shell脚本替换字符串方式,如果知道第几行,格式如下:
<string id="str_ig_ghjjk">hello</string>
字符串内容可能是任意字符串,如何把>和<中间的字符串替换为我的字符串比如world
具体例子:
比如要替换第128行
sed -i '128s/>.*</>world</' test.txt
这样子
❽ SHELL脚本对LINUX下指定文本文件的满足条件的行的特定位置字符串进行替换
YDAY=$(date+"%Y%m%d"-d"-1days")
TDAY=$(date+"%Y%m%d")
awk-vYDAY=$YDAY-vTDAY=$TDAY'
NR==1{
if(substr($0,20,8)==YDAY)
$0=substr($0,1,19)TDAYsubstr($0,28)
if(substr($0,34,8)==YDAY)
$0=substr($0,1,33)TDAYsubstr($0,42)
}
/^TH/{
if(substr($0,21,8)==YDAY)
$0=substr($0,1,20)TDAYsubstr($0,29)
}
{print}'文件名
❾ linux怎么批量替换文件内容
方法一:
使用perl ,命令如下:
下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的
”http://repo1.maven.org/maven2“
替换为
”http://localhost:8081/nexus/content/groups/public“.
这里用到了Perl语言,
perl -pi -e 在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.
从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。
方法二:
使用sed命令如下:
Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
例如:我要把aaa替换 为bbb,执行命令:
这是目前linux最简单的批量替换字符串命令了!
具体格式如下:
实例代码:
❿ 在red hat enter linux中用怎么替换字符串
sed。
在linux中可以利用sed命令来查找和替换文件中的字符串,该命令采用的是流编辑模式,可以根据正则表达式匹配和处理文本文件中的数据,替换语法为“sed”s/要搜索的字符串或正则表达式/替换值/g'要执行操作的文件名”。
