我想知道是否有人能够指出这里出了什么问题。我有一个 txt 数据文件,由空格分隔,7 列 x 10000 行。我想为每个行条目添加两列额外的列,其中一列的值为 255.788 和 176.009。
我使用了以下 awk 脚本:
#! bin/gawk -f
BEGIN {}
{
print $0, 255.788, 176.009;
}
END{}
但是,此脚本将新值添加到下一行的开头。新行字符 ^M 出现在旧数据行的末尾,如下所示;
1 274.458 165.208 256 192 305.989 142.202^M 255.788 176.009
2 276 164.278 256 192 305.963 142.037^M 255.788 176.009
任何帮助或想法将不胜感激!
如果这令人困惑,我想实现这一目标:
1 274.458 165.208 256 192 305.989 142.202 255.788 176.009^M
答案1
只需删除CR之前的处理,然后添加它:
{
gsub("\r","");
print $0,255.788,176.009,"\r"
}
答案2
如果您知道数据已CRLF
终止,那么您可以设置 awk 的记录分隔符相应地在BEGIN
块中
BEGIN {RS="\r\n";ORS=RS}
{
print $0, 255.788, 176.009;
}
END{}