Sed 使用awk或grep选择cron条目
我想处理cron文件,将时间和cron条目放入数据库的不同列中Sed 使用awk或grep选择cron条目,sed,awk,grep,Sed,Awk,Grep,我想处理cron文件,将时间和cron条目放入数据库的不同列中 cat root | awk '{print $1, $2, $3, $4, $5, $6}' 47 * * * * string=`find somefile`; echo $string > success.txt 2> err.txt 使用awk很容易awk cron的前5个占位符。但是如何选择实际的cron条目呢? 在上面的示例中,我想选择从“string”到“$string”的所有内容 我还想选择标准和错误
cat root | awk '{print $1, $2, $3, $4, $5, $6}'
47 * * * * string=`find somefile`; echo $string > success.txt 2> err.txt
使用awk很容易awk cron的前5个占位符。但是如何选择实际的cron条目呢?
在上面的示例中,我想选择从“string”到“$string”的所有内容
我还想选择标准和错误输出文件路径。i、 e.success.txt和err.txt
更新:
awk '{print $NF}'
上面的方法适用于最后一个变量,但下面的方法不适用于第二个变量
awk '{print $NF-2}'
去除初始字段的一种简单方法是使用
cut
:
cut -d' ' --complement -f1-5
我相信这需要GNU版本的cut,因为--complete
标志是一个扩展
我将使用awk将其余的字段拆分为:
awk '{
outfile=$(NF-2)
errfile=$NF
for(n=NF; n>(NF-4); n--) { $n = ""}
printf("command: %s\noutput: %s\nerror: %s\n", $0, outfile, errfile)
}'
请注意,该方法涉及一些假设:
- 空白可以标准化为单个空格
- stdout和stderr都被重定向
- 输出文件和错误文件的名称中不存在空格
awk'{print$(NF-2)}'
。