我到处寻找它的帮助,似乎无法正常工作。我试图做的是采用带空格分隔格式的.txt文件,删除最低值,并打印出剩余的值。这是我正在谈论的一个例子。
1234567890 Joe Blow 90 92 94
2345678901 Jane Kirk 91 58 72
运行代码后,我将得到以下内容
1234567890 Joe Blow 92 94
2345678901 Jane Kirk 91 72
如果可能的话,我也希望能够使用awk语句。感谢您提前提供的任何帮助!
答案 0 :(得分:1)
这应该有效(假设您的前三个字段不进行比较):
awk '{
min = $4
for(i = 4; i <= NF; i++) {
min = (min < $i) ? min : $i
}
for(i = 1; i <= NF; i++) {
printf "%s", ($i == min) ? "" : $i FS
}
print ""
}' file
$ cat file
1234567890 Joe Blow 90 92 94
2345678901 Jane Kirk 91 58 72
$ awk '{
min = $4
for(i = 4; i <= NF; i++) {
min = (min < $i) ? min : $i
}
for(i = 1; i <= NF; i++) {
printf "%s", ($i == min) ? "" : $i FS
}
print ""
}' file
1234567890 Joe Blow 92 94
2345678901 Jane Kirk 91 72