【发布时间】:2021-11-02 09:16:11
【问题描述】:
在以下文件中,第 6 列中值不是 1 或 2 的行的第 6 列值应替换为 -9。我该怎么做?
旧.fam
18_0033 26210 0 0 1 1
18_0036 24595 0 0 1 2
18_0040 25563 0 0 1
18_0041 35990 0 0 0 -8
18_0042 39398 0 0 0 -8
18_0045 21586 0 0 1 1
18_0050 22211 0 0 1 2
new.fam 应该是
18_0033 26210 0 0 1 1
18_0036 24595 0 0 1 2
18_0040 25563 0 0 1 -9
18_0041 35990 0 0 0 -9
18_0042 39398 0 0 0 -9
18_0045 21586 0 0 1 1
18_0050 22211 0 0 1 2
编辑:我用cat old.fam | awk '{ if ($6==1 || $6==2) {print $1 " " $2 " " $3 " " $4 " " $5 " " $6 ;} else {print $1 " " $2 " " $3 " " $4 " " $5 " " -9;}}'> new.fam
现在的问题是第 6 列值 (-9) 被替换的行,第 5 列和第 6 列之间没有空格分隔 FS。
18_0033 26210 0 0 1 1
18_0036 24595 0 0 1 2
18_0040 25563 0 0 1-9
18_0041 35990 0 0 0-9
18_0042 39398 0 0 0-9
18_0045 21586 0 0 1 1
18_0050 22211 0 0 1 2
【问题讨论】:
-
看起来像
awk或sed的典型案例,网站上有很多关于这些命令的帖子。 -
我找不到任何适合初学者的基本帖子。你能引导我去那个_吗?