我正在使用ls命令列出要用作输入的文件。对于找到的每个文件,我需要
我的剧本:
#!/bin/sh
ls APCVENMAST_[0-9][0-9][0-9][0-9]_[0-9][0-9] |
while read LINE
do
importdb -a test901 APCVENMAST ${LINE} > importdb${LINE}.log
awk "{if (NR==6 && substr($2,1,1) != "0")
print "ERROR processing ", ${LINE} > importdb${LINE}err.log
}" < importdb${LINE}.log
mv ${LINE} ${LINE}.PROCESSED
done
这是非常初步的代码,我是新手,但我无法通过下面的解析错误。
错误上下文是:
{if (NR==6 && >>> substr(, <<< awk The statement cannot be correctly parsed.
答案 0 :(得分:6)
的问题:
awk
脚本。 -v
块中的值或脚本即 BEGIN
之后,请使用awk -v awkvar="$shellvar" 'condition{code}' file
正确传递shell变量awk condition{code}' awkvar="$shellvar"
所以修正后的(语法)脚本:
awk 'NR==6 && substr($2,1,1) != 0 {
print "ERROR processing ", line > ("importdb" line "err.log")
}' line="${LINE}" "importdb${LINE}.log"
你还有很多问题,但由于我不知道你想要达到什么目标,因此难以提出正确的方法......
ls