Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2349316
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: LINUX

2007-03-28 17:56:10

对于DOS行尾CR LF格式的文本文件, sed和grep在不同版本中都不能很好地处理
file file
============
file: ASCII text, with CRLF line terminators

cat file
============
asdf
xyz

GNU sed 3.02

sed -n '/^asdf$/p' file
没有任何输出.
/^asdf\x0d$/, /^asdf\015$/, /^asdf\r/ 都不行
但/^asdf.$/ 却可以, 这就等于说, sed知道这有一个字符, 但你无法以确定的办法表示它.

同样的文件, 在cygwin的GNU sed 4.1.3中却可以正确处理.


对于grep, 在 GNU grep 2.5.1(redhat 8.0, 9.0, cygwin)中,
grep -x 'asdf' file
都不能显示, 跟sed一样, 'asdf.' 行, 但其它形式都不行.

对于grep, 由于它用的比sed 广泛, 所以这一问题的危害也大.
阅读(1716) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~