python - 解决bash中while(或for或if)循环n次就跳出
伊谢尔伦
伊谢尔伦 2017-04-18 09:38:59
0
1
483

一个目录下有许多文件(且所有文件都是单行),找出其中含有字符串 NAME="configId"且只含有1个的、以.xml结尾的文件。匹配过后符合要求的文件中,取出任意5个拷贝到/tmp/five目录即可。

我的思路是先grep,然后用while判断等于1的,就拷贝到/tmp/five;循环执行5次,当大于5次就break。
执行了该脚本,发现有问题,/tmp/five中只取到了一个文件。

 for i in *.xml
 do
 num=`grep -o 'NAME="configId"'  $i|wc -l`

 done=0
 while [ "$num" -eq 1 ];do
   cp $i /tmp/five/
     done=$(($done+1))
     if [ "$done" -gt 5 ];then
       break
     fi 
 done
 
 done
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(1)
PHPzhong

リーリー

条件を満たす最初の 5 ファイルのみを取り出すことができますが、任意の

を取り出すことはできません

コードに関するその他のいくつかの問題

  1. 変数名は予約語 (done)

  2. であってはなりません
  3. while ループは、実際には 6done=0~5

    から始まる
  4. 回を丸めます。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!