Удалить определенную строку, содержащую число, из текстового файла

Удалить определенную строку, содержащую число, из текстового файла

У меня есть файл .csv с несколькими строками данных. Мне нужно найти определенное значение в строке/записи и удалить эту строку.

Например:

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

Мне нужно найти 1000542 и удалить всю строку, содержащую это число:

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

решение1

sedДля удаления одной строки можно использовать :

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

где dудаляет строку, -iуказывает sedна необходимость выполнения операций с файлом, а не просто вывода измененного текста, 1000542— это шаблон, который вы хотите найти, — abc.cvsэто имя файла.

решение2

Вы также можете использовать awk,

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

Пример:

$ 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

Он пропускает строку, содержащую текст, 1000542из печати.

Связанный контент