如何解决如果第5列有连字符,则从文件中删除该行
示例文件test.txt
12-3 34r5 2324 - 23ed423 2322
3-4 2-32 45 34ed - 232
e-r 34-2 234 232de - 232
23-4 23-2 232 - - 232de
- - - - - -
预期输出是
12-3 34r5 2324 - 23ed423 2322
条件是,应从文件中删除第5列上包含连字符“-”的行。 是否可以使用sed或awk
我尝试了类似awk '{print $5}' test.txt|grep '-'|xargs sed -i -e /-/d
的操作,但没有成功
解决方法
请您尝试以下。
awk '$5=="-"{next} 1' Input_file > temp && mv temp Input_file
OR
awk '$5!="-"' Input_file > temp && mv temp Input_file
说明: 当在第五个字段或第二个解决方案中找到-
时,只需将光标移到下一个位置,只需打印那些没有{ {1}}的第5个字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。