如何删除一条记录,Unix中用逗号分隔文件n的特殊值

如何删除一条记录,Unix中用逗号分隔文件n的特殊值

如何删除一条记录,Unix中用逗号分隔文件n的特殊值

我的数据

100,india,*,*,P,45000,location
200,india,*,*,*,45000,location
300,india,*,*,P,45000,location
400,india,*,*,*,45000,location

无论 P 位于第五位,我都想删除这些记录。所需输出

200,india,*,*,*,45000,location
400,india,*,*,*,45000,location

答案1

尝试这样的事情:

awk -F, '{if ($5 != "P") { print $0 }}' /path/to/input-file

答案2

你使用 /linux 标签,所以你肯定有 GNU sed

sed -i -E '/^([^,]*,){4}P/d' data.txt
  • -i就地编辑文件
  • -E使用扩展正则表达式以获得更好的可读性
  • [^,]*匹配不带逗号的序列,所以
  • ^([^,]*,){4}匹配前四个字段
  • 如果后面跟着 a Pd则删除该行

相关内容