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
我正在尝试在 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