Sed 使用awk或grep选择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”的所有内容 我还想选择标准和错误

我想处理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”的所有内容 我还想选择标准和错误输出文件路径。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都被重定向
  • 输出文件和错误文件的名称中不存在空格

谢谢。但我也需要标准输出文件名>'xxx'和错误输出文件名2>'yyy'。有没有办法找到最后2>和>”之后的文本?请编辑您的问题,以显示所提供输入的确切输出。祝你好运。你好@shantanuo,你需要:
awk'{print$(NF-2)}'