与えられた数よりも長い単語の数を画面に出力するように要求する割り当てがあります。たとえば、 k としましょう。これはキーボードから読み取られます。そして、結果を注文します。今まで私はこの方法で試すことにしました:
#!bin/bash
k=0
if [ $# -eq 0 ]
then
echo "No argument supplied."
exit 1
fi
echo -n "Give the minimal lenght of the words : "
read k
for files in "$@"
do
if [ -f "$files" ]; then
echo "$(cat $files | egrep -o '[^ ]{k,}' $files | wc -w) : $files."
else
echo "Error: File $files has not been found."
fi
done | sort -n
私の問題は、「egrep -o '[^]{k,}'」セクションで k を使用してこのプログラムを試すたびに、常に間違った答えが返されることです。しかし、それを整数に置き換えると、 in は思い通りに機能します。キーボードから読み取った k に対してこのコードを機能させる正しい方法はどれですか? これは構文であり、そこにどのように記述すればよいか本当に理解できず、他の方法で "$k" 、 $k 、 ((k)) 、k
. どんな助けでも大歓迎です、誰かが私にくれたらヒントをください? ハマった