Come si eliminano tutte le righe in un file che iniziano con "stringa" in sh? Stavo pensando di usare il comando sed.Come si eliminano tutte le righe che iniziano con "stringa" in unix sh?
risposta
grep -v '^string' yourfile.txt > stripped.txt
di farlo al suo posto, se il vostro sed supporta l'opzione -i, si può fare:
sed -i '/^string/d' input-file
sed si aspetta un'estensione di file per il backup quando si usa '-i', in OS X devi essere molto pedante, quindi usare esplicitamente virgolette singole:' sed -i '' '/^string/d' input-file' –
In OSX, il 'sed' predefinito non supporta nemmeno '-i'! La mia preferenza personale è quella di non usare mai '-i' e invece di reindirizzare con la shell. –
No '-e' necessario? – Mausy5043
sed e grep nelle vostre risposte mancano il loro amico awk:
awk '!/^string/' inputfile > resultfile
Ho bisogno che sia nello stesso file – t3hcakeman
È possibile utilizzare Vim in modalità Ex:
ex -sc g/^string/d -cx file
g
selezionare tutte le linee corrispondentid
eliminarex
salvare e chiudere
come circa fuori dello stesso file? – t3hcakeman
Non posso davvero farlo con grep. ma è possibile eseguire l'output in un file temporale quindi "mv tempfile origfile". Se si desidera una vera modifica sul posto, è necessario utilizzare sed/perl/awk. –
come utilizzerei quelli allora? : D – t3hcakeman