通过 awk 将条目添加到行尾

通过 awk 将条目添加到行尾

我想知道是否有人能够指出这里出了什么问题。我有一个 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{}

相关内容