shell中vi替换特殊字符(制表符\t等)的方法

今天看shell教程,看了下特殊字符里面还真不少,顺便练下手

 

echo ------------------------------------
echo "|a\t|ab\t|abc\t|abcd\t|abcde\t|abcdef\t|"
echo -----------------------------------_
echo "|\v|"

 输出还不错 

 

 

------------------------------------
|a	|ab	|abc	|abcd	|abcde	|abcdef	|
-----------------------------------_
|
 |

不过还不理想

 

算了再改一下 

 

echo ------------------------------------
echo "|\ta\t|\tab\t|\tabc\t|\tabcd\t|\tabcde\t|\tabcdef\t|"
echo -----------------------------------_
echo "|\v|"

看下输出内容 

 

 

------------------------------------
|	a	|	ab	|	abc	|	abcd	|	abcde	|	abcdef|
-----------------------------------_
|
 |

太难看了,不居左,不居右,也不居中,算了

 

该回去,

等等,怎么改,一个一个的\t删除吗 ?

对了 vi里吗有个替换功能,好就用它 

 

echo ------------------------------------
echo "|\ta\t|\tab\t|\tabc\t|\tabcd\t|\tabcde\t|\tabcdef\t|"
echo -----------------------------------_
echo "|\v|"
~                                                                                                                                                                                     
:,$s/\ta/a/g

 

 

恩应该没问题,回车输出 

E486:找不到模式:\ta

怎么回事 

 

改一下:

 

:,$s/“\ta”/a/g

 

看下输出 

E486:找不到模式:“\ta”

还是不对,看来双引号加上就直接默认双引号了,不能加,怎么回事 

 

好吧在改:

:,$s/\\ta/a/g

看下输出:

6次替换,共1行

哈哈 成功了,

貌似很神奇的东西,原来不是网上说的直接替换这些东西,

想这些特殊字符一定要转意再转移之后才能用

比如 要匹配aa 那么:,$s/aa/vv/g这样就没问题,全局替换aa为bb

如果要匹配\t 把么必须:,$s/\\t/tab/g,这样就全局替换制表符为tab字符

 

恩 记录一下 

2013-02-28 

我了个去 二月就28天 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值