我有一个有数据的文件:
/homes/XXXX/YYYYY/file1:20150324
/homes/XXXX/YYYYY/file2:20150327
/homes/XXXX/YYYYY/file3:20150320
/homes/XXXX/YYYYY/file3:20150327
/homes/XXXX/YYYYY/file4:20150328第一个字段是path,:是分隔符,第二个字段是日期。我想做的是只选择那些日期低于某个值的行。
gawk -v var="$SOMEVALUE" '{FS = ":"; if($2<=var) print;}'
这就是我所拥有的。它工作得很好,打印的行值比我想的要低,但是它每次也打印第一行,不管值是多少。你能给我一些建议吗?谢谢
发布于 2015-03-29 12:14:11
那麽:
gawk -F: -v var="$SOMEVALUE" 'var>=$2'错误是在读取第一行后必须更改字段分隔符。
发布于 2015-03-29 16:39:28
@朱尼尔压缩机我没有意识到这一点。会在未来的剧本里给我省点麻烦。谢谢:-)
@sykatch您还可以静态地在gawk脚本中定义字段分隔符,如下所示:
gawk -v var="20150323" 'BEGIN {FS = ":"}; {if($2<=var) print;}' datefile.txt但是JuniorCompressor建议的解决方案更灵活。
https://stackoverflow.com/questions/29328925
复制相似问题