Awk

從多個文件中查找特定字元串之後的最高數字

  • August 4, 2022

每個文件都有相似的內容:

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:)

您可以使用最後一個命令,但使用 grep-ho而不是-o

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

-h將從導致問題的結果中刪除文件名。

引用自:https://unix.stackexchange.com/questions/712369