Awk
從多個文件中查找特定字元串之後的最高數字
每個文件都有相似的內容:
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
將從導致問題的結果中刪除文件名。