在 AWK 中以自定义格式打印值
print values in custom format in AWK
如何对齐下面显示的最小值和最大值
计划
{
for(i = 1; i <= NF; i++)
{
a[i] = $i;
if (min[i]==""){ min[i]=$i;} #line1
if (max[i]==""){ max[i]=$i;} #line2
if ($i<min[i]) { min[i]=$i;} #line3
if ($i>max[i]) { max[i]=$i;} #line4
}
print [=10=];
}
END {
OFS="\n";
for(j = 1; j <= NF; j++)
{
print min[j],max[j];
}
}
数据集
4 14 24 34
3 13 23 33
1 11 21 31
2 12 22 32
5 15 25 35
当前输出
4 14 24 34
3 13 23 33
1 11 21 31
2 12 22 32
5 15 25 35
1
5
11
15
21
25
31
35
我需要的输出
4 14 24 34
3 13 23 33
1 11 21 31
2 12 22 32
5 15 25 35
1 11 21 31 -> Min Values(for that field)
5 15 25 35 -> Max Values(for that field)
您需要循环两次,一次用于最小值,一次用于最大值:
END {
for(j = 1; j <= NF; j++) printf "%d ", min[j]
print ""
for(j = 1; j <= NF; j++) printf "%d ", max[j]
print ""
}
如何对齐下面显示的最小值和最大值
计划
{
for(i = 1; i <= NF; i++)
{
a[i] = $i;
if (min[i]==""){ min[i]=$i;} #line1
if (max[i]==""){ max[i]=$i;} #line2
if ($i<min[i]) { min[i]=$i;} #line3
if ($i>max[i]) { max[i]=$i;} #line4
}
print [=10=];
}
END {
OFS="\n";
for(j = 1; j <= NF; j++)
{
print min[j],max[j];
}
}
数据集
4 14 24 34
3 13 23 33
1 11 21 31
2 12 22 32
5 15 25 35
当前输出
4 14 24 34
3 13 23 33
1 11 21 31
2 12 22 32
5 15 25 35
1
5
11
15
21
25
31
35
我需要的输出
4 14 24 34
3 13 23 33
1 11 21 31
2 12 22 32
5 15 25 35
1 11 21 31 -> Min Values(for that field)
5 15 25 35 -> Max Values(for that field)
您需要循环两次,一次用于最小值,一次用于最大值:
END {
for(j = 1; j <= NF; j++) printf "%d ", min[j]
print ""
for(j = 1; j <= NF; j++) printf "%d ", max[j]
print ""
}