使用目錄我有多個文件,這些文件中有多個版本號。我在目錄中爲這些版本號刷新每個文件,對它們進行排序以獲取最新的版本號,然後將它們編入'tail -1',只讀入最新的版本號,而不是每個grep結果。返回數據直到第N次出現字符X
的數據看起來是這樣的:
文件1:ASDF垃圾1.2.4.1 garbagetext ASDF
文件2:fsdaf垃圾asdfsda 4.3.2.10 fdsaf
等。我已經完成了提取最新的版本號。我做了以下幾點:
grep -o '[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}' * | sort | tail -1
接下來的部分是我遇到的麻煩。我試圖在第一個時間段之前提取數字(無論是一個數字字符還是兩個數字字符)並返回該結果。然後,我假設一個稍微不同的命令做同樣的事情,但在第一個時期後的數字。第二階段之後,第三階段之後的數字又是如此。
我幾乎沒有sed或awk的經驗,但經過一些研究後,我相信任何一種工具都可以實現這一目標。
謝謝!
編輯:好的我明白了,但我確信這可以用更簡單的方法完成。我有以下內容:
grep -o '[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}' * | sort | tail -1 | grep -o '[0-9]\{1,\}' | sed -n 2p
或sed -n 1p,3p,4p取決於我想要的值。
你的grep行可能會失敗,如果有兩個數字在開始之一。例如12.3.4.555和3.4.5.77。我認爲你的grep | sort | tail會給你後一個,這不是最新的版本。 – Kent