我必須包含如下表示數字的字符串:匹配,可能有一個換行符在任何地方它在一個字符串 - 慶典
\S2=number_goes_here\
數量可能會從0.00000
和任何東西。但是,在該字符串中的任何位置都可能有換行符,並且我不完全相信如何去匹配該字符串。最終,我只是想從這個數字。重要的是,這個字符串是一片大塊文本,可以由這個樣本(S2
的最後一行找到的話)表示:
1.454187\H,0,0.719618,3.525801,1.633708\H,0,-0.454651,2.80328,2.23844\
Ru,0,0.025774,1.557599,-0.253913\\Version=EM64L-G09RevD.01\State=6-A\H
F=-1238.5377983\S2=8.75446\S2-1=0.\S2A=8.750006\RMSD=2.314e-09\Dipole=
我接受的bash,sed的,awk的,笨拙的人;無論你有什麼想法來解決這個問題。
編輯:
這裏是例子,第一個答案下面似乎並沒有在這個例子中已經工作正常。它只打印「2」。
.631441,-2.132979\H,0,0.20151,-1.464802,-2.95553\H,0,0.377883,-2.50668
5,-1.874761\\Version=EM64L-G09RevD.01\State=3-A\HF=-1265.9035096\S2=2.
053325\S2-1=0.\S2A=2.000966\RMSD=1.590e-04\Dipole=0.7197616,-2.1253769
1; OSX用戶(其中'grep'不支持'-P' - 因此沒有支持lookarounds - 並且'\ d'不能在集合中使用):'egrep -o'\\ S2 = [0-9 。] +'<(tr -d'\ n'
mklement0
@ mklement0我在「S2 = 2。\ n」之後用一個換行符在字符串上試了一下,這不起作用,它只在新行之前拉出來。 –
我在這裏嘗試了實際的答案,它不能正常工作,它可能不是一個真正的新行字符?我編輯了我的問題以提供另一個例子。 –