sed写的命令收集

时间:2024-10-02 17:03:20

1. 替换一行字符串。

<title name= >

<param name="root", value="haha"/>

<param name="root", value="haha"/>

<title name= >

<param name="root", value="haha"/>

<param name="root", value="haha"/>

替换第5行的内容为"<para name ="root", value="magnum"/>"

shell脚本如下:

#!/bin/bash
path=$
head=' <param name="root" value="'
tail='"/>'
rosPath="$head$path$tail"
echo "ros new Path: $rosPath"
sed -in "5s:.*:$rosPath:g" demo_offline.launch

1. 截取[]里面的内容

tt="I am good student."
echo $tt | sed 's@^.*am \([a-z].*\) stu.*$@\1@g'

输出"good"

  : 表示空格

a)^.*am //这句的意思是以任意字符开头到am□为止,匹配文件中的“I am□”字符串

b)\([a-z].*\) //这句的外壳就是括号\(\),里面的[a-z]表示匹配26个字母的任何一个,[a-z].* 合起来就是匹配任意多个字符,本题来说就是匹配good字符串,由于good字符串是需要保留的,因此用括号括起来匹配,后面通过\1来取good字符串。

c)□stu.*$ //表示以空格tea起始任意字符结尾,实际就是匹配good字符串后,紧接着的字符串“□student.”。

d)后面被替换的内容中的\1就是取前面的括号里的内容了,也就是我们要的good字符串。

tt2="imu index[1111], q{0-3}, haha,haha"
echo $tt2 | sed 's/^.*mu index\[\([0-9].*\)\], g.*s/\1/g'

输出"1111"

相关文章