Linux 如何在文件中找到最低值的位置?

Linux 如何在文件中找到最低值的位置?,linux,bash,pipe,Linux,Bash,Pipe,如何输出内部值最低的行的位置 我有一个包含如下数据的文件: 2233|charles harris |g.m. |sales |12/12/52| 90000 9876|bill johnson |director |production|03/12/50|130000 5678|robert dylan |d.g.m. |marketing |04/19/43| 85000 2365|john woodcock |director |personnel |

如何输出内部值最低的行的位置

我有一个包含如下数据的文件:

2233|charles harris  |g.m.     |sales     |12/12/52| 90000
9876|bill johnson    |director |production|03/12/50|130000
5678|robert dylan    |d.g.m.   |marketing |04/19/43| 85000
2365|john woodcock   |director |personnel |05/11/47|120000
5423|barry wood      |chairman |admin     |08/30/56|160000
1006|gordon lightfoot|director |sales     |09/03/38|140000

我需要从最后一列中找到一个最低值并返回其位置

您可以使用此命令仅获取显示该值的行号。如果该值出现多次,则它将给出多个行号:

var=$(cut -d "|" -f 6 filename|sort -nr|tail -n1|grep -w -n -f /dev/stdin filename|awk -F ":" '{print $1}');cut -d "|" -f 6 filename |grep -w -n $var filename|awk -F ":" '{print $1}'
要查看具有最低值的行及其行号,请使用以下命令:

var=$(cut -d "|" -f 6 filename|sort -nr|tail -n1|grep -w -n -f /dev/stdin filename|awk -F ":" '{print $1}');cut -d "|" -f 6 filename |grep -w -n $var filename

你试过什么吗?Stackoverflow不是免费的编码服务。我们帮助您编写代码,因此您需要解释您尝试了什么和/或提出一个特定的问题,以帮助您在代码中迈出下一步/第一步。这应该是一个简单的awk练习。保留两个变量,一个是迄今为止看到的最低值,另一个是找到它的行号。每当您得到一个小于第一个变量的值时,更新当前行中的两个变量。最后,打印两个变量。或者使用cat-n管道连接到排序,管道连接到head-1,管道连接到awk。例如,如果文件是foo.txt:cat-nfoo.txt | sort-t\|-n-k6,6 | head-1 | awk'{print$1}。移除awk以打印其原始行号之前的完整行,或调整awk以仅打印不带行号的行。