从多个文件中查找特定字符串后的最大数字

从多个文件中查找特定字符串后的最大数字

每个文件都有相似的内容:

number 1:
asdfa11sdfsadf
number 2:
asdfa12sdfsadf
number 1:
asdfa1sdfsadf
number 3:
asdfa33sdfsadf

返回

3 or number 3: are equally good.

试过:

max="$( awk -F":" 'BEGIN{max=0}{if(($2)>max)  max=$2}END {print max}' file)"
printf "%d\n" "$max"

它会返回 33 但不是 3。

也尝试过:

grep -o 'number\s[0-9]*' file1.txt file2.txt | sort -nr | head -1

它将根据文件输入层次结构返回最高的数字(它只会从 file2 中找到最高的数字,即使最高的数字在 file1 中为数字 8:)

答案1

您可以使用最后一个命令,但使用 grep-ho代替-o

grep -ho 'number\s[0-9]*' file1.txt file2.txt | sort -nr | head -1

-h将从导致问题的结果中删除文件名。

相关内容