在awk中使用条件语句解析csv

在awk中使用条件语句解析csv,csv,awk,Csv,Awk,我有一个csv文件 file.csv C75ADANXX,5,20,,AGGCAGAA,AGAGTAGA,,,,,AB C75ADANXX,5,21,,AGGCAGAA,GTAAGGAG,,,,,AB C75ADANXX,5,22,,AGGCAGAA,ACTGCATA,,,,,AB C75ADANXX,5,23,,AGGCAGAA,AAGGAGTA,,,,,TC C75ADANXX,5,24,,AGGCAGAA,CTAAGCCT,,,,,TC C75ADANXX,5,25,,TCCTGAGC,G

我有一个csv文件

file.csv

C75ADANXX,5,20,,AGGCAGAA,AGAGTAGA,,,,,AB
C75ADANXX,5,21,,AGGCAGAA,GTAAGGAG,,,,,AB
C75ADANXX,5,22,,AGGCAGAA,ACTGCATA,,,,,AB
C75ADANXX,5,23,,AGGCAGAA,AAGGAGTA,,,,,TC
C75ADANXX,5,24,,AGGCAGAA,CTAAGCCT,,,,,TC
C75ADANXX,5,25,,TCCTGAGC,GCGTAAGA,,,,,TC
当我运行以下awk命令时:

awk -F "," '{print$11}' file.csv  ##prints last cloumn
我想用TC提取行;但是下面的命令不打印任何内容

awk -F "," '{if($11==TC){print$0}}' file.csv

我在写命令时哪里出错了?谢谢。

修改

awk -F "," '{if($11=="TC"){print$0}}' file.csv
甚至是简单的

awk -F, '$11=="TC"' file.csv
  • 如果($11==TC)
    因为变量
    TC
    以前没有定义(因为没有使用引号,
    awk
    TC
    视为变量而不是字符串),它总是计算
    false
    ,所以它不打印任何内容

试试这个


grep“,TC$”file.csv

将命令修改为

awk -F "," '{if($11=="TC\r"){print$0}}' file.csv 

此文件是从windows复制的,它在行尾有一个回车字符,当您仅打印最后一列时,显然看不到该字符。

仍然不起作用,Akshay,我尝试了您提供的两种解决方案。它在你这边有效吗?无法复制,请指定你的平台。请尝试
awk-F,“$11~/TC/”
awk -F "," '{if($11=="TC\r"){print$0}}' file.csv