1

を使用してファイルからいくつかの値を出力していますawk

awk 'NR>1{print $20,$45,$102}' RS='vector'

それはそれらをうまく印刷しますが、残念ながら値は常にそのまま、つまり一緒に印刷されます:

1 8: 34  
1 9: 32

:値の後に削除する方法はありますか?

1 8 34  
1 9 32
4

3 に答える 3

8

:は列45に属していると思います。awkのsub()機能で削除できます。

これを試して:

awk 'NR>1{sub(/:$/,"",$45); print $20,$45,$102}' RS='vector' file
于 2013-08-14T12:26:11.230 に答える
5

入力ファイルを表示しなかったので推測ですが、必要なのは:FSに含めることだけかもしれません。

awk 'NR>1{print $20,$45,$102}' FS='[[:space:]:]+' RS='vector'
于 2013-08-14T12:40:06.363 に答える
3

printf 関数を使用して、数値としてフォーマットします。

awk 'NR>1{printf "%d %d %d\n", $20,$45,$102}' RS='vector'
于 2013-08-14T12:24:58.030 に答える