Mam kilka plików pdb i chcę zachować tylko te wiersze, które zaczynają się od, ^FORMULa jeśli po wierszu Cwystępuje liczba większa niż (C3,C4,C5,C6..100 etc)wtedy, nie powinienem go drukować. Drugi warunek jest taki, że w każdej linii suma C, H and Npowinna wynosić co najmniej 6.
Więc ogólnie usuń wiersze, po których Cnastępuje liczba, 2>a suma C+O+Nto >=6.
FORMUL 3 HOH *207(H2 O) (print it)
FORMUL 2 SF4 FE4 S4 (print it)
FORMUL 3 NIC C5 H7 N O7 (don't print, there is C5)
FORMUL 4 HOH *321(H2 O) (print it)
FORMUL 3 HEM 2(C34 H32 FE N4 O4) (don't print, there is C34)
Próbowałem to zrobić, perlale linie są tak różne od siebie, więc nie jestem pewien, czy jest to możliwe.
C3 N1 01nie należy usuwać, ponieważ ogólnie jest to mniej niż 5, C2 N4 02należy usunąć, chociaż C2istnieją, ogólnie jest to więcej niż 6. Ogólnie usunąć wszystkie wiersze, w których C>2i sum is 6.
grep '^FORMUL' *pdb | grep -vE 'C([3-9]|[12][0-9])'ponieważ chciałem usunąć te wiersze, które późniejCmają liczbę większą niż 3. Oba warunki powinny zostać uwzględnione, ale nie razem, co oznacza, że jeśli mamC2 N5 02, jest nadal w porządku, chociaż po C następuje1