首页 > 解决方案 > Sed 命令将检查我的文件的第二列并删除匹配的数据

问题描述

我想寻求帮助,我是使用sed的初学者,

我想使用 sed 删除第二列中的字母,我也遇到了标题问题,因为如果它是一个字母,它将删除标题的第二列。该文件以逗号分隔。

address,salary 

manila,joan
manila,1111
manila,2222
manila,3334

它将删除 'joan' 行,因此输出应该是-:

address,salary

manila,1111
manila,2222
manila,3334

TIA

标签: unixsed

解决方案


这更像是一份工作,awk而不是sed。尝试awk像这样使用:

$ awk -F, 'NR == 1 || $2 !~ /[a-zA-Z]/' foo.txt
address,salary

manila,1111
manila,2222
manila,3334

如果您确实需要sed用于就地编辑,请尝试类似

$ sed -i '1b;/^[^,]*,[^,]*[a-zA-Z]/d' foo.txt
address,salary

manila,1111
manila,2222
manila,3334

推荐阅读