2016-07-05 10 views
1

私は問題があり、解決方法がわかりません。グループ同様のホスト名とカウンタを追加する

似たようなホスト名のリストがありますが、微妙な違いがあります。

hostname[1000-1004,2000-2002] 

をこれはPDSHで使用するために、次のようになります。たとえば、次のよう

hostname1000 
hostname1001 
hostname1002 
hostname1003 
hostname1004 
hostname2000 
hostname2001 
hostname2002 

私はグループこれらのホスト名をしたいと思います。

私は以下を試しましたが、ファイル名の末尾にカウントを追加し、ホスト名ごとにユニークカウントでグループ化しません。

num=1;for a in $(cat range_hostname |cut -c 1-12 |sort) ; do echo ${a}${num}; num=$[num+1 ];done 

任意のアイデアは参考になる:)

ありがとう! ジョー

答えて

0

だから私もunix.comに掲載し、ここで他の人が見ることができるので、問題を解決する:

awk ' 
      {HN = $1 
      sub (/[0-9]*$/, _, HN) 
      sub (/^[a-z]*/, _, $1) 
      } 
NR == 1   {printf "%s[%04d-", HN, $1 
      } 
NR > 1 && 
$1+0 != LAST+1 {printf "%04d,%04d-", LAST, $1 
      } 
      {LAST = $1 
      } 
END    {printf "%04d]\n", $1 
      } 
' filename 

ファイル名が一度にホスト名1行のリストが含まれています。

これも

hostnmae0101 
hostname0102 
hostname0103 ... etc 

のようにホスト名の後に4桁のグループを前提とし、出力は

hostname[0101-0103] 

感謝されます! Joe