$与\n的区别

sh/bash/dash/ksh/zsh等Shell脚本
回复
shmily623
帖子: 64
注册时间: 2009-07-02 19:11

$与\n的区别

#1

帖子 shmily623 » 2010-09-17 11:00

$代表行尾,\n代表换行,它们之间有什么区别?例如vi中删除一个空行 s/^$//g不会起作用,但s/^\n//g就可以.
头像
HuaChong
帖子: 493
注册时间: 2006-09-12 17:10

Re: $与\n的区别

#2

帖子 HuaChong » 2010-09-17 11:07

肯定不起作用撒,s是用来替换,s/^$//g你把空行替换成空行,啥事没干那。用s/^\n//g你把开始后就是回车替换成空,当然就对了。如果是在vim中你可以用g/^$/d来执行正则的一些操作,这个会把空行删掉。vim中的ed命令g就代表执行正则操作。
poet
帖子: 2841
注册时间: 2006-09-11 22:47

Re: $与\n的区别

#3

帖子 poet » 2010-09-17 13:16

shmily623 写了:$代表行尾,\n代表换行,它们之间有什么区别?例如vi中删除一个空行 s/^$//g不会起作用,但s/^\n//g就可以.
这么跟你说把。 $ 字符的长度为 0,\n 字符的长度为 1。

$ 相当于行尾跟 \n 字符之间的一个长度为 0 的虚拟字符。

明白了?
shmily623
帖子: 64
注册时间: 2009-07-02 19:11

Re: $与\n的区别

#4

帖子 shmily623 » 2010-09-17 20:16

多谢各位牛人们,明白了
maozhx
帖子: 14
注册时间: 2009-09-19 18:17

Re: $与\n的区别

#5

帖子 maozhx » 2010-09-18 11:41

$符号只是一个标记,\n是存在的。推荐看看《精通正则表达式》
回复