Vorrei usare Vim per abbinare un'espressione regolare ed eseguire una sostituzione. Ho un file TSV con linee simili a questa:Asserzione positiva e sostituzione con Vim?
rs11223-A -A
rs23300-G -TTA
rs9733-T -G
rs11900000-GT -TTG
desidero sostituire il trattino (-) di caratteri per una scheda solo nella prima colonna, dopo le rs ...
In Vim I stava tentando di eseguire la sostituzione con:
:%s/(?<=^rs[0-9]{1,12})-/\t/g
qualcuno potrebbe sottolineano qual è il mio problema e una soluzione giusta?
# 2 dovrebbe essere:% s/^ rs \ d \ @<= -/\ t/g – KomodoDave
@KomodoDave: Il tuo pattern corrisponderebbe a 'rs' all'inizio della riga, immediatamente seguito da un trattino (' -') preceduto da una * singola * cifra (aspetto positivo dietro '\ d \ @<= -'). Nessuna delle righe nei dati forniti corrisponde a tale modello. Se insisti per ancorare, potresti usare il modello che ho appena aggiunto. –
Ho pensato che OP significava colonna nel senso delle colonne di caratteri, ma forse non lo è. Ho copiato il tuo per modificarlo e non ho sostituito \ d con - come intendevo - quello che volevo scrivere è::% s/^ rs - \ @<=/\ t/g che corrisponde a '-' nel primo colonna char dopo 'rs' all'inizio della riga. – KomodoDave