`

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天 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics