如何删除一条记录,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
P
,d
则删除该行