ksh unix 中的文件行数

file line count in ksh unix

我正在尝试在 ksh 脚本中从如下文件中获取行数。但它 returns 没什么 :

filerecordcount= $((`wc -l <../data/act.dat`))

我也试过这些:

    filerecordcount= `wc -l <../data/act.dat`

    filerecordcount= $(wc -l <../data/act.dat)

当我打印变量时,它并没有打印变量中的值。

print "Record Count in .dat file : $filerecordcount." 1>&2;

但是当我在命令提示符下尝试相同的操作时 returns 计数

wc -l<../data/act.dat

您不必在分配部分的 = 之后给出 space。使用下面的一个。它会工作正常。但不要忘记打印变量 filerecordcount。

更新:

filerecordcount=$((`wc -l <​​../data/act.dat`))

简化简化。您的反引号正在执行命令扩展,并且它们的输出正在由 $((...)) 作为算术表达式处理。有点多余。

filerecordcount=$(wc -l < ../data/act.dat)

= 之后没有 space,只有一级命令扩展。

或者您可以使用进程替换:

read filerecordcount < <(wc -l < ../data/act.dat)

或者您甚至可以在没有子 shell 的情况下使用循环来执行此操作:

filerecordcount=0
while read junk; do ((filerecordcount++)); done < ../data/act.dat