有誰能告訴我該怎麼做? 我的代碼如下:Unix:如何檢查第3位出現的次數從1到1232
#!/bin/bash
typeset -i count=0;
for ((i=1;i<=1232;i++));
do
if [ ]; then
count=count+1;
fi
done
echo $count
333
算作一個發生。
有誰能告訴我該怎麼做? 我的代碼如下:Unix:如何檢查第3位出現的次數從1到1232
#!/bin/bash
typeset -i count=0;
for ((i=1;i<=1232;i++));
do
if [ ]; then
count=count+1;
fi
done
echo $count
333
算作一個發生。
試試這個:
#!/bin/bash
typeset -i count=0;
for ((i=1;i<=1232;i++));
do
if [[ "$i" =~ .*3.* ]]; then
count=count+1
fi
done
echo $count
該代碼執行一個正則表達式中i
尋找3
作爲for
循環的進展。
順便說一下,答案是315
如果您需要使用grep
:
#!/bin/bash
typeset -i count=0;
for ((i=1;i<=1232;i++));
do
if grep -q 3 <<<$i; then
count=count+1
fi
done
echo $count
這是慢了很多,雖然。
你介意給我解釋grep -q 3 <<< $ i嗎? – user3105629
@ user3105629是的。我編輯了我的問題。不過,它比我發佈的標準正則表達式要慢很多。 –
我仍然沒有得到(grep -q 3 <<< $ i)。 對不起 – user3105629
從1到1232指望有多少數字在他們的十進制表示(所以333
被計算一次)至少一個3
:
$ seq 1232 | grep -c 3
315
要計算的3
S中的總數(因此333
計數3次):
$ seq 1232 | sed 's/./& /g' | fmt -w 1 | grep -c 3
346
333會計爲1例還是3例? –
它會算作一個案例。我試圖使用grep – user3105629
我可以在一行中完成,但如果這是作業,我不想僅發佈答案。 「 –