awkを介して行末に項目を追加する

awkを介して行末に項目を追加する

誰かがここで何が間違っているかを指摘できるかどうか疑問に思います。スペースで区切られた7列×10000行のtxtデータファイルがあります。各行項目に2つの追加列(1つの値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

データが終了したことを知っていればCRLFawk を設定できます記録区切り記号BEGINしたがって、ブロックから

BEGIN {RS="\r\n";ORS=RS}
{ 
    print $0, 255.788, 176.009;
}
END{}

関連情報