我使用下面的代码将一个值附加100
到文件中的每一行。当我在终端中运行此代码时,它运行良好,但是当我将代码保存在 .awk 文件中并运行它时,我收到错误。如何从脚本文件运行此代码而不是从终端运行?
code: awk -F ';' '{if ($2==NULL) print $0"100"}' example.txt
my.awk
awk -F ';' '{if ($2==NULL) print $0"100"}'
终端中的命令
awk -f my.awk example.txt
错误
invalid char ''' in expression. I get this error at ';'
如何纠正此错误并在 example.txt 上运行 awk 文件?
答案1
当使用 执行awk
脚本时awk -f
,脚本应该仅有的包含awk
代码。
在你的情况下
{if ($2==NULL) print $0"100"}
或者
$2 == NULL { print $0 "100" }
你可以用以下命令执行
awk -F ';' -f my.awk example.txt
如果您想在脚本中设置FS
为;
(静态地,而不是在命令行上使用-F
),请在BEGIN
块中执行此操作:
BEGIN { FS = ";" }
$2 == NULL { print $0 "100" }
另请注意,该变量NULL
在您的代码中未设置。