Entfernen Sie eine bestimmte Zeile, die eine Zahl enthält, aus einer Textdatei

Entfernen Sie eine bestimmte Zeile, die eine Zahl enthält, aus einer Textdatei

Ich habe eine CSV-Datei mit mehreren Datenzeilen. Ich muss in der Zeichenfolge/dem Datensatz nach einem bestimmten Wert suchen und diese Zeile selbst löschen.

Zum Beispiel:

abc.csv

col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000542,eeee,ffff,gggg,hhhh
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

Ich muss nach 1000542 suchen und die gesamte Zeile entfernen, die diese Nummer enthält:

col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

Antwort1

sedSie können zum Entfernen einer Zeile Folgendes verwenden :

sed -i '/1000542/d' abc.cvs

wobei ddie Zeile entfernt wird, -iangibt sed, dass mit der Datei gearbeitet werden soll, anstatt nur den geänderten Text auszugeben, 1000542das Muster ist, nach dem Sie suchen möchten, und abc.cvsder Dateiname ist.

Antwort2

Sie könnten auch awk verwenden,

awk '/1000542/ {next}1' infile > outfile

Beispiel:

$ awk '/1000542/ {next}1' file
col1_id,col2,col3,col4,col5
1000541,aaaa,bbbb,cccc,dddd
1000543,iiii,jjjj,kkkk,llll
1000544,mmmm,nnnn,oooo,pppp

Es überspringt die Zeile, die 1000542den Druck enthält.

verwandte Informationen