Gawk:改行前のバックスペースが機能しません。

Gawk:改行前のバックスペースが機能しません。

私は gawk(4.1.3) を使っていますが、小さな問題に封着したようです。バックスペース文字の後に改行文字が続くと機能しないようです。

awk 'BEGIN{for(i=1;i<=3;i++) printf("%d,",i); printf("\b\n")}'

ください1,2,3,(最後のカンマは抜けません)

\n新しい関数に入れてもこの問題は解決しませんprintf

しかし、間にスペースなどの\b文字を挿入すると\n機能します。

もう一度削除すると\n機能します。

問題は何ですか?

ベストアンサー1

\bカーソルだけが移動され、テキストは上書きされません。

でカンマ区切りリストを作成するには、awk正しいレコードを作成して印刷することが1つのオプションです。

BEGIN {
    OFS = ","
    $0 = ""

    for (i = 1; i <= 3; ++i)
      $i = i

    print
}

出力は次のとおりです1,2,3

ソロ群衆の場合:

awk -vOFS=',' 'BEGIN { for (i = 1; i <= 3; ++i) $i = i; print }'

$0空の文字列に設定すると、そうではありません。本物ここでは、ブロックが1つだけでBEGIN入力データがないため必要なので、単一行の変形では省略しました。

おすすめ記事