linux中如何看文件换行符,linux下的换行符

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

换行符在不同操作系统下有不同的表示,比如windows下是CR+LF连续两个字符,linux下为了节省空间用LF表示,macOS X下同样是LF(早期的macOS曾经使用CR)。关于CR和LF的历史要追溯到电传打字机时代,CR代表carriage return, 让打字机机头移动到当前行开始;LF代表line feed,让纸张往前移动一行。具体可以参考博客Why is the line terminator CR+LF?

之所以写这篇文章,是因为我在Linux下用python脚本按约定格式生成的文件被同事在Windows下打开发现行数不一致。

这里的关键在于“行”到底如何定义,看下POSIX规范:

3.206 Line

*A sequence of zero or more non- characters plus a terminating character.*

3.195 Incomplete Line

*A sequence of one or more non- characters at the end of the file.*

注意到文本末尾一个不以换行符结尾的字符串是不能算作标准的一行的。Linux下的很多常见命令行工具的正确执行都依赖这个定义,无论是cat、sed还是wc。以wc工具为例,可以看到如果字符串不以换行结尾,行数统计是不能得到与经验一致的结果的。

# line count: 0

echo -en 'abc' | wc -l

# line count: 1

echo -en 'abcn' | wc -l

如果在Linux下打开vi来编辑文件,默认配置情况下vi会自动添加一个换行符,所以通过ls命令观察写入的文件可以发现其大小比手动写入的字节数多出一个字节。

为了最大程度与Linux上其它的工具兼容,用程序生成文件时请记得给文件末尾加上换行符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值