我正试图从任何匹配行的文件中删除//
和行尾之间的所有内容。
所以我在做:
sed -i -e 's://.*$::g' file
而且它几乎完美地工作。除了这条讨厌的线,上面有这些特殊的字符,没有动过。
// Date � � � Owner � � � � � � �Short description
我不知道那些角色是什么,我真的不在乎。为什么.*
与这些字符不匹配?
文件(本例中为iso-8859-1(和操作系统(本例为UTF-8(之间的编码不一致很容易导致问题。
将输入文件转换为系统的默认UTF8。有几种实用程序可以做到这一点。一个是iconv。尝试:
iconv -f iso-8859-1 -t utf8 file >newfile
然后使用CCD_ 5。
旁白
另一个微妙的问题是行尾。如果源文件是iso-8859-1
,它曾经在Windows机器上编辑过吗?如果是这样的话,它可能有DOS/Windows行结尾,当与Unix工具一起使用时,这会导致各种不明显的问题。使用dos2unix
或类似的实用程序转换行尾。