Sto usando sed per filtrare un elenco di file. Ho un elenco ordinato di cartelle e voglio ottenere tutte le linee dopo una specifica. Per eseguire questa operazione, sto utilizzando la soluzione descritta here che funziona molto bene con qualsiasi input che ho provato ma non funziona quando la corrispondenza è nella prima riga. In tal caso sed rimuoverà tutte le linee di ingressoRimuovere tutte le righe prima di una partita con sed
qui è un esempio:
(ssh) [email protected] : ~
[0] % ls -1/
bin
boot
...
sys
tmp
usr
var
vmlinuz
(ssh) [email protected] : ~
[0] % ls -1/| sed '1,/tmp/d'
usr
var
vmlinuz
(ssh) [email protected] : ~
[0] % ls -1/| sed '1,/^bin$/d'
# sed will delete all lines from the input stream
Come dovrei cambiare il comando di prendere in considerazione anche il caso limite in cui prima linea è accompagnata da espressioni regolari?
BTW sed '1,1d'
funziona correttamente e rimuove solo la prima riga.
Grazie per un commento. Corretto e aggiunto poche altre soluzioni. – jm666