私はこの問題に悩まされています:私はシェルスクリプトを書きました.stdinから多くの行を含む大きなファイルを取得します.それが実行方法です:
./script < filename
スクリプト内の別の操作への入力としてファイルを使用したいのですが、このファイルの名前を変数に格納する方法がわかりません。
stdin からファイルを引数として取り、このファイル自体で 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はかなり時間がかかるようです. では、これを改善するにはどうすればよいでしょうか。