在unix shell脚本中导致null的awk
我的服务器中有一个文件,我需要使用指定的日期获取特定范围的行,所以我搜索了一个脚本并得出了这个文件。在unix shell脚本中导致null的awk,shell,unix,awk,Shell,Unix,Awk,我的服务器中有一个文件,我需要使用指定的日期获取特定范围的行,所以我搜索了一个脚本并得出了这个文件。 我在命令行中输入了这个命令,它运行良好: awk'$0>=“2018年9月19日09:00:00”&&&0=“$t_i_f_o”&&0=“${t_i_f_o}”&&0您需要正确地将字符串括起来。您希望通过bash扩展t\u i\u f\u o变量,但希望通过awk扩展$0。 此外,您还需要设置LC_ALL=C或LC_TIME=C,否则您将在不同地区的PC上获得奇怪的结果(就像我的一样) 导出L
我在命令行中输入了这个命令,它运行良好:
awk'$0>=“2018年9月19日09:00:00”&&&0=“$t_i_f_o”&&0=“${t_i_f_o}”&&0您需要正确地将字符串括起来。您希望通过bash扩展t\u i\u f\u o
变量,但希望通过awk扩展$0
。
此外,您还需要设置LC_ALL=C
或LC_TIME=C
,否则您将在不同地区的PC上获得奇怪的结果(就像我的一样)
导出LC\u ALL=C
今天=$(日期--date=“2018年9月19日09:00:00AM”)
t_i_f_o=$(日期+%d%b%Y%H:%M:%S”--date=“$todayl”)
t_f_m_a=$(日期+%d%b%Y%H:%m:%S”--date=“$todayl+5分钟”)
awk“$0>=”“$t_i_f_o””&&&$0=“”$t_i_f_o”&&&&$1您需要正确地将字符串括起来。您希望通过bash扩展t\u i\u f\u o
变量,但希望通过awk扩展$0
。
此外,您还需要设置LC_ALL=C
或LC_TIME=C
,否则您将在不同地区的PC上获得奇怪的结果(就像我的一样)
导出LC\u ALL=C
今天=$(日期--date=“2018年9月19日09:00:00AM”)
t_i_f_o=$(日期+%d%b%Y%H:%M:%S”--date=“$todayl”)
t_f_m_a=$(日期+%d%b%Y%H:%m:%S”--date=“$todayl+5分钟”)
awk“$0>=”“$t_i_f_o””&&&$0=““$t_i_f_o””&&$1 Oww对不起,我的意思是“日期”可能与awk命令重复,我只是想知道为什么我在awk命令中手动输入日期时效果很好。我认为我在命令本身中传递变量的方式有问题。请阅读有关shell扩展的内容。将变量放入”
qoutes不会展开它们。您需要将变量放入“
qoutes,所有其他的”
qoutes。哦,很抱歉,我的意思是“日期”可能是重复的,我只是想知道为什么我在awk命令中手动输入日期时效果很好。我认为我在命令本身中传递变量的方式有问题。请阅读有关shell扩展的内容。将变量放入”
qoutes不会展开它们。你需要把变量放在“
qoutes里面,其余的都放在”
qoutes里面。我对日期没有问题,我回显了日期,结果正如预期的那样,我还尝试了awk-F'.'$1>=“$t\u i\u F\o”“&&$1感谢这项工作,唯一没有成功的原因是我忘了删除我测试字符串日期的变量。是的,我也发现了这一点。今天是今天
,不是今天
;)不要做awk-F'#''1>='“$t_i_F_o”&&&$1=tifo&&$1我对日期没有问题,我回显了日期,结果正如预期的那样,我也尝试了awk-F'.'$1>='“$t_i_F_o”&&$1感谢这起作用,唯一没有问题的原因是我忘了删除我测试字符串日期的变量。是的,我也发现了这一点。今天是今天
,不是今天
;)不要做awk-F'.''$1>=“$t#i_F_o”&&&$1=tifo&&$1
19 Sep 2018 08:47:57,153#ad****#L****#2018-Sep-19 08:47:43 110#2018-Sep-19
08:47:57 153#14.***sec
19 Sep 2018 09:00:25,582#jg****#L****#2018-Sep-19 09:00:22 658#2018-Sep-19
09:00:25 582#2.***sec
19 Sep 2018 09:00:25,720#lr****#L****#2018-Sep-19 09:00:22 038#2018-Sep-19
09:00:25 720#3.***sec
....
todayl=$(date --date="19 Sept 2018 09:00:00AM")
t_i_f_o=$(date +"%d %b %Y %H:%M:%S" --date="$today")
t_f_m_a=$(date +"%d %b %Y %H:%M:%S" --date="$today + 5 minutes")
awk '$0 >= "$t_i_f_o" && $0 <= "$t_f_m_a" ' /home/m.../k.../t.../somelogfile1.txt > /home/m.../k.../t../f.../another1.txt #Tried this
awk '$0 >= "${t_i_f_o}" && $0 <= "${t_f_m_a}"' /home/m.../k.../t.../somefile2.txt > /home/m.../k.../t.../f.../another2.txt # and this
export LC_ALL=C
todayl=$(date --date="19 Sep 2018 09:00:00AM")
t_i_f_o=$(date +"%d %b %Y %H:%M:%S" --date="$todayl")
t_f_m_a=$(date +"%d %b %Y %H:%M:%S" --date="$todayl + 5 minutes")
awk '$0 >= "'"$t_i_f_o"'" && $0 <= "'"$t_f_m_a"'"' /tmp/1
awk -F'#' '$1 >= "'"$t_i_f_o"'" && $1 <= "'"$t_f_m_a"'"' /tmp/1