shell 替换,匹配

------------恢复内容开始------------

>替换shell字符串:

echo ${string/23/bb}   //abc1bb42341  替换一次    echo ${string//23/bb}  //abc1bb4bb41  双斜杠替换所有匹配    echo ${string/#abc/bb} //bb12342341   #以什么开头来匹配,根php中的^有点像  echo ${string/%41/bb}  //abc123423bb  %以什么结尾来匹配,根php中的$有点像   > 替换文件中字符串直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:
sed -i 's/book/books/g' file
全面替换标记g使用后缀 /g 标记会替换每一行中的所有匹配:
sed 's/book/books/g' file

判断匹配:
str="hello"
if [[ "$str" =~ ^he.* ]]; then
    echo "yes"
fi

使用正则匹配字符串的开头字符需要注意:

  • he*:不要使用he*,这里的*号表示e字符0到多个,即h,以及heeee都是测试通过的
  • he.*:这里只允许包含he的字符串通过测试
  • ^he.*:这个表示是以he开头的字符串通过检测
   

------------恢复内容结束------------

上一篇:我能看懂的MakeFile(自命名,多文件,多目标)


下一篇:Luogu P3523 [POI2011]DYN-Dynamite