从文本文件中删除包含数字的特定行

从文本文件中删除包含数字的特定行

我有一个包含多行数据的 .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

whered删除该行,-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

相关内容