The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

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



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

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
2つのファイルの列を追加する chandra321 シェルプログラミングとスクリプティング 7 2009年5月6日 12:11午後
異なる2つのファイルで同様の列を比較する ragavhere シェルプログラミングとスクリプティング 13 2008年4月16日 08:53午前
2つのファイル内のテーブルの共通の列を比較する ragavhere Sun Solaris 1 2008年4月11日 08:41午前
2つのファイルの列を比較する ggopal シェルプログラミングとスクリプティング 4 2007年2月21日 08:06午後
2つのファイルの列を比較する ggopal UNIXの詳細&エキスパートのためのユーザー 1 2007年2月17日 04:11午前

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

参加日: 2008年6月
投稿: 2
ファイルの比較- /減算を追加/ formating列

私は2つのファイルがあります:
file1.txt :
のFSトータル無料%使用
/ u01 10000 8000 2000 80 %
/ u02 10000 8000 2000 80 %
/ u03 10000 8000 2000 80 %
/ u04 10000 8000 2000 80 %
/ u05 10000 8000 2000 80 %
/ u06 10000 8000 2000 80 %
/ u07 10000 8000 2000 80 %
/ u10 10000 5000 5000 50 %

file2.txt :
可変のFS
/ u01 1,500
/ u05 500
/ u10 2,500

各ファイルの最初の列を使って比較し、双方は、次のように見えるからの出力を作成するようになります:

のFSトータル使用+可変フリー可変(使用+可変) /合計
-------- --------- --------- --------- ---------
/ u01 10,000 9,500 500 95 %
/ u02 10,000 8,000 2,000 80 %
/ u03 10,000 8,000 2,000 80 %
/ u04 10,000 8,000 2,000 80 %
/ u05 10,000 8,500 1,500 85 %
/ u06 10,000 8,000 2,000 80 %
/ u07 10,000 7,500 2,500 75 %

のでご注意くださいfile1.txtからすべての行を、リストされているとカラムfile2.txt "可変"列"を使用する"に追加され、列から減算さ"フリー" file1.txtの場合のみが一致しています。

私はこの報告書を作成するには、データベースにこれらのファイルを読み込んだ後はあなたの助けを借りて私はシェルスクリプトを使って行うことができます確信していることができた。

ありがとう、
トメール
  #2固定リンク)  
Old 2008年6月5日
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
中毒
  
 

参加日: 2007年1月
場所: Варна 、 България /ミラノ、イタリア
投稿数: 2,854
あなたはこのように使用することができます:
(または、 nawkを使用/ usr/xpg4/bin/awk Solaris上)

コード:
awk 'NR == FNR { 
  sub(/,/, "")
  _[$1] = $2 
  next 
  }
FNR == 1 { 
  printf "%4s %5s %8s %8s %14s\n", 
  "FS", "Total", "Used+Adj", "Free-Adj", "(Used+Adj)/Total"
  while (++i < 46) printf "-"
  print ""
  next
  }           
$1 in _ { 
  $3 += _[$1]
  $4 -= _[$1] 
  $5 = $3/$2*100 
  }
{
  printf "%4s %5d %8d %8d %14d%\n",
  $1, $2, $3, $4, $5
  }' file2.txt file1.txt
  #3固定リンク)  
Old 2008年6月6日
oabdalla oabdalla is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿: 2
、 radoulov 、お客様の迅速かつelegentスクリプトをご利用いただきありがとうございます。それ完璧に動作しています。
すべての私は今のフォーマットは、レポートをうまく行う必要があるので、より読みやすいですが、私は理解できると思います。

感謝して

トメール
  #4固定リンク)  
Old 2008年6月11日
vakhariaマヘシュ vakharia Mahesh is offline
登録ユーザー
  
 

参加日: 2007年2月
投稿: 51
Question などのファイルを比較する

こんにちはRadoulov 、
私はあなたのスクリプトを読んだことがある。あなたは私の知識のためeloborateできます。ありがとう。
  #5固定リンク)  
Old 2008年6月11日
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
中毒
  
 

参加日: 2007年1月
場所: Варна 、 България /ミラノ、イタリア
投稿数: 2,854
引用:
当初の投稿 vakhariaマヘシュ View Post
[...]
あなたは私の知識をeloborateできます
確信している。

コード:
NR == FNR
上記の表現の中にのみtrueを返す最初の入力ファイル(ファイル2 )の処理。そのためには、対応するアクションをしている:

コード:
{ 
  sub(/,/, "")
  _[$1] = $2 
  next 
  }
ストリップは、何千ものセパレータは、連想配列を実装 _〜とともに $ 1 キーは、 $ 2 値としては、入力されるので、指定:

コード:
key -> "/u01" value -> 1500
key -> "/u05" value -> 500
key -> "/u10" value -> 2500
その 次の 文軍 awkは 現在のレコードの処理が停止するので、 それ以上のルール/アクションを実行される このレコード。これは、次のアクションは、最初の入力ファイルを処理しないことを意味します。

コード:
FNR == 1
FNR これまでは、現在の入力ファイルからこの場合には( 2番目の入力ファイル)を読むされているレコードの数です。そのためには、中2番目の入力ファイルの最初のレコードの処理:

コード:
{ 
  printf "%4s %5s %8s %8s %14s\n", 
  "FS", "Total", "Used+Adj", "Free-Adj", "(Used+Adj)/Total"
  while (++i < 46) printf "-"
  print ""
  next
  }
印刷すると、列のヘッダーに行く 次の 記録します。

コード:
$1 in _ { 
  $3 += _[$1]
  $4 -= _[$1] 
  $5 = $3/$2*100 
  }
配列のキー trueを返す場合は、指示 指示に存在 配列。これらの記録のためには、以下の通りです:
-の値を追加 _ [ $ 1 ] は、対応するキーの $ 1 3番目の列に
-の値を減算 _ [ $ 1 ] は、対応するキーの $ 1 4番目の列から
- 5番目の列の値を計算

コード:
{
  printf "%4s %5d %8d %8d %14d%\n",
  $1, $2, $3, $4, $5
  }
新しい値を印刷します。


この期待に役立ちます。
  #6固定リンク)  
Old 2008年6月12日
vakhariaマヘシュ vakharia Mahesh is offline
登録ユーザー
  
 

参加日: 2007年2月
投稿: 51
Thumbs up ファイルを比較する

実に素晴らしい!なしWORDSSSSSSSSの道だけで十分です
説明する。おかげで私の下HEART.Let私の束
理解していると言うと、シンプルにしたのですsomthing説明する
cumbersome.Once再びThanx 。
Dimitri歓声。
  #7固定リンク)  
Old 2008年6月12日
vakhariaマヘシュ vakharia Mahesh is offline
登録ユーザー
  
 

参加日: 2007年2月
投稿: 51
Thumbs up ファイルを比較する

今私は、返事が書かれているappersはここで、

親愛なるRadlouv
のコードを説明するためにあなたに感謝のバンドル非常にシンプルな言葉。
駄目だが、実に素晴らしい。言葉だけで十分ですありません。何か知っている
wrodsが、簡単な説明に大きなinsiteする必要があります。

再びThanx 。歓声アップ。
Closed Thread

ブックマーク

タグ
Solarisの

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

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

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

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




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


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

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