使用awk读取每行文件并存储到数组中

时间:2013-03-28 20:55:38

标签: ksh nawk

我正在使用Sun Solaris中的ksh。我有一个文件,每行只有一个单词作为工作名称。想要从文件中读取所有作业并在给定的orde中逐个执行它们。怎么做在ksh。如果在命令提示符下触发,下面的代码工作正常。当我尝试通过shell脚本运行它时会出错。

i=0;nawk '{print $1}' input.txt | while read -r r;
do 
a[i]="$r";
echo "${a[++i]}";
done

ERROR:

i=0
+ read -r r
+ nawk {print $1} input.txt
test2.ksh: -r: is not an identifier

1 个答案:

答案 0 :(得分:0)

消息来自Bourne shell,因此可能会以某种方式以正确的方式调用脚本。您需要在脚本中插入一个shebang作为第一行:

#!/bin/ksh

并使其可执行并执行它:

chmod +x /path/to/script
/path/to/script

或者您需要像这样调用脚本:

ksh /path/to/script