0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ある列全体を、別の列のとある値で規格化したい

Last updated at Posted at 2022-07-22

目標はタイトルの通り。
ここでは、とあるファイルdata.txtの4列目を、3列目の一行目(3列目の一番初め)で規格化したいとする。

列全体における操作なのでawkを使ってみる。
まず最初にしないといけないのは、3列目の一行目(3列目の一番初め)を抽出して変数KIKAKUに格納すること。
そのために、

KIKAKU=$(awk NR==1'{print $3}' data.txt)
を行う。

続いて、規格化を行い、結果はdata_kikaku.txtにいれるとすると、

awk '{print $1,$2,$3,($4/KIKAKU)}' data.txt > data_kikaku.txt

###注意
KIKAKUが0の場合は割り算ができないので、「0でなければ」という条件を付加する。

cat data.txt | awk '
{
   if (KIKAKU != 0 ) {
     print $1,$2,$3,($4/KIKAKU)
    }
}
'

と条件をつける。
awk内におけるif構文では、!=がnot equalを表す。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?