sed替换
这个命令可以看到替换后的内容,如果希望替换后的内容直接覆盖原文件,加上-i参数即可
备注:mac与linux替换原文件略有区别,mac强制要求对原文件进行备份
more tmp.txt
abcdef
hbhberfdhsf
sed 's/b.*d/lzc/g' tmp.txt
alzcef
hlzchsf
sed -i '' 's/b.*d/lzc/g' tmp.txt
more tmp.txt
alzcef
hlzchsf
sed提取
more tmp.txt
abcdef
hbhberfdhsf
# sed -n(屏蔽默认输出,默认sed会输出读取文档的全部内容)
# sed /p(将匹配到的内容打印出来)
# sed -e script 指定sed编辑命令
sed -n -e 's/.*b\(.*\)d.*/\1/p' tmp.txt
c
erf
# sed提取真实案例
# 把.*<release>\(.*\)<\/release>.* 提取其中的\1部分,即中间的括号部分
url=https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/maven-metadata.xml
curl -L ${url}
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>com.taobao.arthas</groupId>
<artifactId>arthas-packaging</artifactId>
<version>3.1.7</version>
<versioning>
<release>3.3.7</release>
<versions>
<version>3.0.0-RC</version>
<version>3.0.3</version>
<version>3.0.4</version>
<version>3.0.5</version>
<version>3.1.0</version>
<version>3.1.1</version>
<version>3.1.2</version>
<version>3.1.3</version>
<version>3.1.4</version>
<version>3.1.5</version>
<version>3.1.6</version>
<version>3.1.7</version>
<version>3.1.8</version>
<version>3.2.0</version>
<version>3.3.0</version>
<version>3.3.1</version>
<version>3.3.2</version>
<version>3.3.3</version>
<version>3.3.4</version>
<version>3.3.5</version>
<version>3.3.6</version>
<version>3.3.7</version>
</versions>
<lastUpdated>20200723165700</lastUpdated>
</versioning>
</metadata>
curl -sLk "${url}" | sed -n -e 's/.*<release>\(.*\)<\/release>.*/\1/p' | head -n 1
3.3.7