bash,获取具有特定列条件的行表单文件

bash,获取具有特定列条件的行表单文件,bash,awk,sed,Bash,Awk,Sed,我有一个包含两列的文件,例如,这个文件的第行是这样的:username,data username,20150706 我试图得到第二列中的日期早于例如20151231的行 编辑,解决方案:我想循环读取日期(文件的第二列),然后将其与另一个日期进行比较,例如20151231。然后,如果日期早于20151231,则将整行(用户名、日期)写入文件。我是这样做的: date1=20151231 while read -r line; do date2=$(echo $l

我有一个包含两列的文件,例如,这个文件的第行是这样的:username,data

username,20150706
我试图得到第二列中的日期早于例如20151231的行

编辑,解决方案:我想循环读取日期(文件的第二列),然后将其与另一个日期进行比较,例如20151231。然后,如果日期早于20151231,则将整行(用户名、日期)写入文件。我是这样做的:

date1=20151231
while read -r line;
    do
            date2=$(echo $line | cut -d "," -f2);
            if (( date2 < date1 ));
                    then
                    echo "$line" >> filename2;
            fi
    done < filename
date1=20151231
而read-r行;
做
日期2=$(回音$行|切-d“,”-f2);
如果((日期2<日期1));
然后
echo“$line”>>filename2;
fi
完成<文件名
所以有一个小问题解决了:)


提前感谢您的建议。

您可以使用awk解决此问题:

awk -F',' -v threshold=20151231 '$2<=threshold' file

awk-F','-v threshold=20151231'$2sample data always helps我会使用perl,因为基本命令不适合日期计算。perl脚本将收到您想要的日期作为限制。然后从文件中提取日期,并进行比较。