shell中vi替換特殊字元(製表符\t等)的方法
阿新 • • 發佈:2019-01-29
今天看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天