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天 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章