使用awk和/或sed删除ISO日期较低/较高的行

使用awk和/或sed删除ISO日期较低/较高的行,awk,sed,pipe,ksh,Awk,Sed,Pipe,Ksh,我有以下文件: DATA;ORA;TESTO log;AMBIENTE;JOBNAME;NOMEAPP;NOMESCRIPT;PARAMETRI; 20130216;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;; 20130427;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "

我有以下文件:

DATA;ORA;TESTO log;AMBIENTE;JOBNAME;NOMEAPP;NOMESCRIPT;PARAMETRI;
20130216;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
20130427;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
20131010;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
20130217;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
20130217;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
20130217;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
20140217;17-02-2014;15:15:13;Devi valorizzare la variabile AMBIENTE con "BCOLL" o "BPROD" ;;
第一行是ISO格式的日期,每行递增

我想只使用一行带有grep、awk或sed的shell脚本来剪切比给定日期早的所有行

请注意标题中有描述字段

重要的是要与AIX、Linux、Solaris兼容,而不是与sed-i兼容

我有一个命令,它提取了一些行,但也提取了第一个empy行

awk -F ";" '$1 < 20140101 {print $1}' log.csv
但是这个也不起作用:

for i in awk -F ";" '$1 < 20140101 {print $1}' log.csv; do awk '!/$i/' log.csv; done
awk-F中i的“
”“$1<20140101{print$1}”log.csv;干得好/$i/'log.csv;完成

NR==1在第一行的
awk
中为真。对于其余部分,只需使用比较

awk -F\; 'NR==1 || $1 < 20140101 { print }'
awk-F\;'NR==1 | |$1<20140101{print}
这对我很有用:

awk -F';' '$1>=20140101 {print}' log.csv
幸运的是,ISO日期可以作为整数正确比较

sed -n "1 p;/^20140101/,$ p" log.csv
如果您想使用sed更改文件,并与每个环境兼容,则需要使用一个临时文件,仍然在shell的1行上,但上面有许多指令

sed -n "1 p;/^20140101/,$ p" log.csv >/tmp/log.csv;mv /tmp/log.csv log.csv

你在我输入答案时发布了这个。标题行中的第一个字将大于任何整数,因此功能上不需要
NR==1
,尽管它有更明确的优点。@Emmet:如果标题更改为其他内容,它也会起作用:),如果标题更改为同样表示“日期”的内容,这只是功能上的优势但是是数字的,这似乎有点不太可能:)谢谢大家。就在几分钟前,我找到了一个类似于您的解决方案:
awk-F”;“$1>20130217”log.tmp&&mv log.tmp log.csv
sed -n "1 p;/^20140101/,$ p" log.csv >/tmp/log.csv;mv /tmp/log.csv log.csv