The UNIX and Linux Forums  

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
Googleのunix.com



シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
呼び出すには/シェルスクリプトからのシェルスクリプトを実行する konark UNIXのダミー質問と回答のため 1 2007年10月26日 06:16午後
awkはシェルスクリプトでコマンドを実行する方法は? RishiPahuja シェルプログラミングとスクリプティング 1 2005年9月2日 10:37午前
シェルスクリプトを実行する sam71 UNIXのダミー質問と回答のため 1 2005年4月29日 02:43午後
それをPHPでシェルスクリプトを実行することは可能ですか? Micz シェルプログラミングとスクリプティング 1 2004年5月27日 12:52午後
シェルスクリプトを実行するためにどのように? siva シェルプログラミングとスクリプティング 3 2002年5月14日 12:07午後

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2007年11月16日
nvuradi nvuradi is offline
登録ユーザー
  
 

参加日: 2007年3月
投稿: 23
シェルスクリプトを実行するために3時間以上を取っている

やあ



私は1行にキー列のすべての値を変換する、などのための処理をしています



キーcol1 col2

1 1 1

1 2 1

1 1 3

1 3 1

2 1 1

2 1 2



私は、スクリプトにはどのようにこのデータを変換してるんです



1 (鍵) | 1:2:1:3 (全Col1値) 、 1:1:3:1 ( col2値)

2 (鍵) | 1:1,1:2

これが私を達成するためにを使用している2つのwhileループと4ループの他の場合

実行するようにしている3時間以上0200000 ( 2ラック) 、このスクリプトをしている列の数を今すぐに私の生産を4とは、入力ファイル内の番号を記録している。

どのように実行時間を最小限に抑えるためのすべての考えですか?
  #2固定リンク)  
Old 2007年11月16日
matrixmadhan matrixmadhan is offline Forum Advisor  
Technoratiのマスター
  
 

参加日: 2005年3月
場所:Bのリーフノード+木
投稿数:2960
エラーをチェック!完了しない!

ハッシュを使用して、しなければならない、この超高速!


コード:
#! /opt/third-party/bin/perl

open(FILE, "<", "r");

while(<FILE>) {
  next if(/^$/);
  chomp;
  my @arr = split(/ /);
  my @val = split(/,/, $fileHash{$arr[0]});
  $val[0] .= (":" . $arr[1]);
  $val[1] .= (":" . $arr[2]);
  $val[0] .= ("," . $val[1]);
  $val[0] =~ s/,:/,/;
  $val[0] =~ s/^://;
  $fileHash{$arr[0]} = $val[0];
}

close(FILE);

foreach my $k ( keys %fileHash ) {
  print "$k $fileHash{$k}\n";
}

exit 0

  #3固定リンク)  
Old 2007年11月18日
summer_cherry summer_cherry is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2007年6月
所在地:中国北京
投稿数:1098
awkは

やあ、

これは[ OK ]をする必要があります。

入力:

コード:
1 1 1

1 2 1

1 1 3

1 3 1

2 1 1

2 1 2

3 1 1

4 2 1

4 1 3

1 3 1

2 1 1

2 1 2

optput :

コード:
2|1:1:1:1|1:1:1:1
3|1|1
4|2:1|2:1
1|1:2:1:3:3|1:2:1:3:3

コード:

コード:
awk '
{
if (NF>1)
{
	col[$1]=$1
	if (col1[$1]=="")
		col1[$1]=$2
	else
		col1[$1]=sprintf("%s:%s",col1[$1],$2)
	if (col2[$1]=="")
		col2[$1]=$2
	else
		col2[$1]=sprintf("%s:%s",col2[$1],$2)
}
}
END{

for (i in col)
	print i"|"col1[i]"|"col2[i]
}' filename

Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 08:04午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0