linux - 如何在 AWK 中处理不同的行尾,例如以 CRLF (\r\n) 结尾的行和以 LF (\n) 或 CR (\r) 结尾的行
问题描述
我是 AWK 的新手,要求拆分其中一个字段并将其附加到记录/行的末尾,为此我使用了我在下面分享的 awk 命令。但是,当文件具有不同的行尾(例如 CR 或 CRLF)时,它的行为会有所不同。
awk 命令:
awk 'BEGIN { FS = "~" }; {fullname=$1}; {split(fullname, a, " ")}; { if (fullname=="TT") newmodifiedline=$0; else newmodifiedline=$0"~"a[1]"~"a[2]; }; { print newmodifiedline }' example.txt > example_modified.txt
当 example.txt 文件以 CRLF 作为行尾时,如下所示
但是,当使用行尾为 LF 的文件时,我确实得到了所需的结果,并且附加的值正确地附加在记录的末尾,如下所示。
有没有一种方法可以处理它而不考虑行尾字符或将行尾字符设置为 LR 然后运行 awk 命令?请帮忙。
解决方案
awk '
{ sub(/\r$/,"") }
...other stuff...
' file
可能是您想要的,否则请参阅为什么我的工具输出会覆盖自身以及如何修复它?
推荐阅读
- awk - 比较具有不同字段分隔符的两个文件的不同列,而第二个文件的列数不相等
- omnet++ - 如何在 OMNeT UDP 数据包中添加真实数据?
- java - 如何创建一个包装器以从 jmeter 启动 junit 类
- python-3.x - 在python中比较表情符号并在它们周围放置空格
- android - 使用 Retrofit 在不同设备上上传图像/文件时出现错误代码:500 或内部服务器错误
- rest - 不使用 cookie 时是否需要细粒度的 CORS(REST API)
- java - 无法写入 Excel 文件 (Apache POI)
- javascript - $(window).ready(function() ){} 应该等待图像、css 加载
- c# - 如何消除重复的 SQL 查询以在不同的表名中执行
- html - CSS - 带有透明图像的部分