我被这个问题困住了:我写了一个 shell 脚本,它从标准输入获取了一个包含许多行的大文件,这就是它的执行方式:
./script < filename
我想将该文件用作脚本中另一个操作的输入,但是我不知道如何将此文件的名称存储在变量中。
它是一个脚本,它从标准输入中获取一个文件作为参数,然后在这个文件中执行 awk 操作。说如果我用脚本写:
script:
#!/bin/sh
...
read file
...
awk '...' < "$file"
...
它只读取输入文件的第一行。我找到了这样写的方法:
Min=-1
while read line; do
n=$(echo $line | awk -F$delim '{print NF}')
if [ $Min -eq -1 ] || [ $n -lt $Min ];then
Min=$n
fi
done
等待处理需要很长时间,看起来 awk 需要很长时间。那么如何改进呢?