bdjhx 发表于 2017-5-16 09:41:23

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天 
页: [1]
查看完整版本: shell中vi替换特殊字符(制表符\t等)的方法