Shell-sed之替换字符

  • 将A_B_C_D_TXT 修改为 A.B_C_D.TXT

echo "A_B_C_D_TXT"|sed 's/_/./1;s/_/./3'

注:后面的数字代表匹配的次数, 1表示第一次, 用分号(;)分割后, 第二次执行基于第一次执行结果, 固应该为3.

 

  • 变量的快速处理
  • # 是 去掉左边(键盘上#在 $ 的左边)
    %是去掉右边(键盘上% 在$ 的右边)

# testvar=/tmp/hello_world_load_001.tar.gz
# echo ${testvar}
/tmp/hello_world_load_001.tar.gz
# echo ${testvar#*.} <--#表示删除左边, 第一个出现字符"."的左边将被裁减掉.
tar.gz
# echo ${testvar#*/} <--同上, 这次裁减的是"/"字符左边的内容
tmp/hello_world_load_001.tar.gz
echo ${testvar##*/}  <--两个##代表最后一个及其左边的字符.
hello_world_load_001.tar.gz
echo ${testvar%/*}   <-%表示删除右边, 这个表示删除从右边数第一个字符"/"及其右边的字符.
/tmp
# echo ${testvar%%_*} <-两个%%表示最后一个,从右边数最后出现的字符"_"及其右边字符被删除.
/tmp/hello
echo ${testvar%_*}
/tmp/hello_world_load



posted on 2018-02-07 11:53  bjfarmer  阅读(199)  评论(0编辑  收藏  举报