2016-10-28 15 views
0

私はいくつかのファイルを含むtmpディレクトリを持っています。これらのファイル名を解析し、それぞれの内容を解析する必要があります。whileループで立ち往生

!/bin/bash 

TMPDIR=/home/david/tmp 
    ip_targets(){ 
     while IFS= read -r file_name; do 
      echo "This is: $file_name" 
       while IFS= read -r ip;do 
         echo "This is IP: $ip" 
       done < <(cat "$file_name") ## Is this wrong ? 
     done < <(find "$TMPDIR" -regex '.*.vms$') 
    } 
    ip_targets 

どうすればこの問題を解決できますか?上記のように$ file_nameはエコーされますが、その内容はエコーされません。

+0

なぜあなたは 'だけでなく' < "$ file_nameに" の '' <<(猫 "FILE_NAME")をやっていますか? – ymonad

+0

@ymonad - '<" $ file_name "'は動作しません。 '<<(cat" file_name ")' – dross

答えて

1

これを試してみてください:

!/bin/bash 

TMPDIR=/home/david/tmp 
    ip_targets(){ 
     while IFS= read -r file_name; do 
      echo "This is: $file_name" 
      grep -woE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" $file_name  
     done < <(find "$TMPDIR" -regex '.*.vms$') 
    } 
    ip_targets 
+0

これは動作しませんが、grepは何もしません。 – dross

+0

私はあなたのためにそれをテストできるようにサンプルのvmsファイルを投稿してください –

関連する問題