Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在unix shell脚本中导致null的awk_Shell_Unix_Awk - Fatal编程技术网

在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