Come nell'esempio, sto cercando di ottenere i numeri di riga che contengono il modello. Il mio modello contiene barre, quindi volevo aggiungere un delimitatore personalizzato.
Questo semplice funziona:
sed -n '/file/=' temp.txt
Anche l'uso del delimitatore per la sostituzione delle stringhe funziona:
sed 's|file|gile|' temp.txt
ma quando voglio aggiungere il delimitatore al primo esempio non lo fa:
sed -n '|file /etc|=' temp.txt
So di poter sfuggire alle barre, ma preferirei aggiungere un delimitatore personalizzato. Qualche idea su come correggere il mio comando?
Risposta accettata:
Stéphane ti ha dato il sed
soluzione:
sed -n '|file /etc|=' file
Se sei disposto a utilizzare altri strumenti, puoi farlo anche
grep -n 'file /etc' file
Ciò stamperà anche la riga stessa, per ottenere il numero di riga da solo prova:
grep -n 'file /etc' file | cut -d: -f 1
Oppure puoi usare perl
:
perl -lne 'm|file /etc| && print $.' file
Oppure awk
:
awk '$0 ~ "file /etc" {print NR}'