perl - 如何从行尾删除 `\n` 字符?
问题描述
医生说:
咀嚼;# 在最后一个字段上避免 \n
但是当文件有 windows CRLF 时,只有 LF 从最后被删除。
my $line = <STDIN>;
print chomp $line; # 1
print map{ ord } split '', $line; # 46 49 13
如何CRLF
从末尾删除两个字符?
解决方案
Glib 回答:在 Windows 上运行您的程序。
略少 glib 答案:dos2unix
在处理数据文件之前运行它。
几乎完全不是油嘴滑舌的答案:
您指向的文档以此开头:
这个更安全的chop版本删除了与当前值对应的任何尾随字符串
$/
所以如果你想改变你的行为,chomp()
你需要改变$/
.
{ # Always localise changes to Perl's internal variables.
local $/ = "\015\012";
chomp; # Now removes Windows line endings
} # Revert $/ to original value
推荐阅读
- python - Matplotlib 不显示不同语言的字符(印地语)和其他字符,如表情符号
- codeigniter - For循环问题在Codeigniter 4中迭代一次
- python - 使用爬虫从公司网站上抓取新闻稿?
- javascript - React.memo - 第二个参数“areEqual”永远不会被调用
- c++ - MISRA 2008:无法理解 5-0-13 规则
- c - TCP 套接字上的 POLLIN 事件,但没有要读取的数据
- r - 使用循环或应用覆盖多个字符串变量
- java - 无法使用 exoPlayer 2.11 播放 MKV Matroska 视频
- json - Chrome 扩展程序保存
- javascript - 验证 nuxt js 中的钩子函数给我未定义的“状态”