linux - 查找和删除第二列开头的记录

时间:2017-10-26 16:06:39

标签: linux unix awk sed

  

" 2017年9月4日"" d"" 0015"" 1"" 0015"," 08080000",60371,18923315.66

这是我的文件abc中的示例记录,我想从中删除所有以02开头的记录,如 -

  

" 02080000"
  " 02100000"

等...(请考虑"在此专栏开始时),我尝试了awk但它不能在我的Linux上工作 -

awk -F"," ' $ 6!= / ^" 02 /' abc> abc_correct

2 个答案:

答案 0 :(得分:1)

!=更改为!~

两个运算符~!~执行正则表达式比较

awk -F"," '$2 !~ /^"02/' infile >outfile

第6栏

awk -F"," '$6 !~ /^"02/' infile >outfile

可能有用:

  

Awk中的比较运算符用于比较数字的值   或字符串,它们包括以下内容:

     
      
  • > - 大于
  •   
  • < - 少于
  •   
  • >= - 大于或等于
  •   
  • <= - 小于或等于
  •   
  • == - 等于
  •   
  • != - 不等于
  •   
  • some_value ~ /regexp/ - 如果some_value与regexp匹配,则为true
  •   
  • some_value !~ /regexp/ - 如果some_value与regexp
  • 不匹配,则为true   

答案 1 :(得分:0)

您可以使用

删除位置2和3上02的行
grep -vE '^.02 abc

v - 跳过行 E - 表达式 ^ - 行的开头
. - 任何角色