The UNIX and Linux Forums  

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



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

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
入力ボックス ruben.rodrigues シェルプログラミングとスクリプティング 2 2009年1月28日 06:17午前
入力ボックスメッセージ ruben.rodrigues UNIXのダミー質問と回答のため 0 2009年1月28日 04:34午前
1入力ファイルから特定の内容を読むと、他の入力ファイルに付加 sksahu シェルプログラミングとスクリプティング 5 2009年1月14日 06:09午前
valesに割り当てるarrary koti_rama シェルプログラミングとスクリプティング 0 2007年7月24日 03:43午前
どのように入力を要求すると、 1行で入力を受け入れる newbie168 シェルプログラミングとスクリプティング 2 2005年9月27日 06:02午前

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

参加日: 2008年11月
投稿: 14
Awkの仕方-入力vales efileからannotherに

より良い説明のためにテストファイルを添付してくださいを参照してくださいとファイル....感謝の書式

foo1


コード:
H2600 LINE: 
H2600
H2600
H2600 MYSystems Ltd. (Feb 18 2009) 
V1760R1130      1    2213133522.79N 81 027.09E 500814.01502345.9      145 9 837
E1760R1130      1 2  2213133522.44N 81 027.33E 500821.11502335.1      145 9 837
Z1760R1130      11   2213133512.77N 81 031.86E 500957.51502038.3      145 9 837
Z1760R1130      12   2213133512.15N 81 030.27E 500909.81502019.1      145 9 837
R   1 501299.31502012.1 6.7   2 501303.51502000.2 6.8   3 501307.71501988.4 7.01
R   4 501311.91501976.6 7.1   5 501316.21501964.7 7.3   6 501320.41501952.9 7.41
R   7 501324.61501941.2 7.5   8 501328.91501929.3 7.5   9 501333.21501917.5 7.51
R  10 501337.41501905.7 7.5  11 501341.71501893.9 7.5  12 501346.01501882.1 7.51
V1760R1130      1    2214133523.56N 81 026.81E 500805.51502369.5      145 9 849
E1760R1130      1 2  2214133523.21N 81 027.04E 500812.61502358.7      145 9 849
Z1760R1130      11   2214133513.54N 81 031.57E 500948.61502061.8      145 9 849
Z1760R1130      12   2214133512.93N 81 029.98E 500900.81502042.9      145 9 849
R   1 501299.31502012.1 6.7   2 501303.51502000.2 6.8   3 501307.71501988.4 7.01
R   4 501311.91501976.6 7.1   5 501316.21501964.7 7.3   6 501320.41501952.9 7.41
R   7 501324.61501941.2 7.5   8 501328.91501929.3 7.5   9 501333.21501917.5 7.51
R  10 501337.41501905.7 7.5  11 501341.71501893.9 7.5  12 501346.01501882.1 7.51
V1760R1130      1    2392133740.94N 805939.69E 499389.81506589.83182.4145 94330
E1760R1130      1 2  2392133523.21N 81 027.04E 500812.61502358.7      145 9 849
Z1760R1130      11   2392133513.54N 81 031.57E 500948.61502061.8      145 9 849
Z1760R1130      12   2392133512.93N 81 029.98E 500900.81502042.9      145 9 849



foo2


コード:
key    key
2213    3200    
2214    3198
2392    3182



私foo1からの読み取りと交換カラム65 70で2ドルから希望する場合foo2
70 〜 Vとカラム65とfoo1が起動している列の行と空白の22から25の場合は$ 1のマッチfoo1 foo2 。

また、ファイルfoo2レコードsepeatorもないように見えると私NRを設定する80文字に相当するのが好きだと思います。

だから私の出力ファイルのようになります。


コード:
H2600 LINE: 
H2600
H2600
H2600 MYSystems Ltd. (Feb 18 2009) 
V1760R1130      1    2213133522.79N 81 027.09E 500814.01502345.93200  145 9 837
E1760R1130      1 2  2213133522.44N 81 027.33E 500821.11502335.1      145 9 837
Z1760R1130      11   2213133512.77N 81 031.86E 500957.51502038.3      145 9 837
Z1760R1130      12   2213133512.15N 81 030.27E 500909.81502019.1      145 9 837
R   1 501299.31502012.1 6.7   2 501303.51502000.2 6.8   3 501307.71501988.4 7.01
R   4 501311.91501976.6 7.1   5 501316.21501964.7 7.3   6 501320.41501952.9 7.41
R   7 501324.61501941.2 7.5   8 501328.91501929.3 7.5   9 501333.21501917.5 7.51
R  10 501337.41501905.7 7.5  11 501341.71501893.9 7.5  12 501346.01501882.1 7.51
V1760R1130      1    2214133523.56N 81 026.81E 500805.51502369.53198  145 9 849
E1760R1130      1 2  2214133523.21N 81 027.04E 500812.61502358.7      145 9 849
Z1760R1130      11   2214133513.54N 81 031.57E 500948.61502061.8      145 9 849
Z1760R1130      12   2214133512.93N 81 029.98E 500900.81502042.9      145 9 849
R   1 501299.31502012.1 6.7   2 501303.51502000.2 6.8   3 501307.71501988.4 7.01
R   4 501311.91501976.6 7.1   5 501316.21501964.7 7.3   6 501320.41501952.9 7.41
R   7 501324.61501941.2 7.5   8 501328.91501929.3 7.5   9 501333.21501917.5 7.51
R  10 501337.41501905.7 7.5  11 501341.71501893.9 7.5  12 501346.01501882.1 7.51
V1760R1130      1    2392133740.94N 805939.69E 499389.81506589.83182.4145 94330
E1760R1130      1 2  2392133523.21N 81 027.04E 500812.61502358.7      145 9 849
Z1760R1130      11   2392133513.54N 81 031.57E 500948.61502061.8      145 9 849
Z1760R1130      12   2392133512.93N 81 029.98E 500900.81502042.9      145 9 849

添付ファイル
File Type: txt foo1.txt ( 3.7 KBで、 12ビュー)

編集Franklin52で最終; 2009年5月26日に 08:30午前..理由:読み取り不可、追加のコードタグ
  #2固定リンク)  
Old 2009年5月26日
Franklin52 Franklin52 is offline Forum Staff  
モデレータ
  
 

参加日: 2007年2月
投稿数:4345
このお試しください:


コード:
awk 'NR==FNR{a[$1]=$2;next}
/^V/ && substr($0,65,5)=="     " && substr($0,22,4) in a {
  print substr($0,1,64) a[substr($0,22,4)] substr($0,69);next
}
1' foo2 foo1

使用して気の利かない、 nawkまたは/ usr/xpg4/bin/awk Solaris上。
  #3固定リンク)  
Old 2009年5月26日
summer_cherry summer_cherry is offline Forum Advisor  
登録ユーザー
  
 

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

コード:
my %hash=(
2213  =>  3200,   
2214  =>  3198,
2392  =>  3182,
);
while(<DATA>){
	if(/^V/ && (substr($_,64,6)=~/\s{6}/)){
		substr($_,64,4)=$hash{substr($_,21,4)};
	}
	print;
}

__DATA__
H2600 LINE: 
H2600
H2600
H2600 MYSystems Ltd. (Feb 18 2009) 
V1760R1130      1    2213133522.79N 81 027.09E 500814.01502345.9      145 9 837
E1760R1130      1 2  2213133522.44N 81 027.33E 500821.11502335.1      145 9 837
Z1760R1130      11   2213133512.77N 81 031.86E 500957.51502038.3      145 9 837
Z1760R1130      12   2213133512.15N 81 030.27E 500909.81502019.1      145 9 837
R   1 501299.31502012.1 6.7   2 501303.51502000.2 6.8   3 501307.71501988.4 7.01
R   4 501311.91501976.6 7.1   5 501316.21501964.7 7.3   6 501320.41501952.9 7.41
R   7 501324.61501941.2 7.5   8 501328.91501929.3 7.5   9 501333.21501917.5 7.51
R  10 501337.41501905.7 7.5  11 501341.71501893.9 7.5  12 501346.01501882.1 7.51
V1760R1130      1    2214133523.56N 81 026.81E 500805.51502369.5      145 9 849
E1760R1130      1 2  2214133523.21N 81 027.04E 500812.61502358.7      145 9 849
Z1760R1130      11   2214133513.54N 81 031.57E 500948.61502061.8      145 9 849
Z1760R1130      12   2214133512.93N 81 029.98E 500900.81502042.9      145 9 849
R   1 501299.31502012.1 6.7   2 501303.51502000.2 6.8   3 501307.71501988.4 7.01
R   4 501311.91501976.6 7.1   5 501316.21501964.7 7.3   6 501320.41501952.9 7.41
R   7 501324.61501941.2 7.5   8 501328.91501929.3 7.5   9 501333.21501917.5 7.51
R  10 501337.41501905.7 7.5  11 501341.71501893.9 7.5  12 501346.01501882.1 7.51
V1760R1130      1    2392133740.94N 805939.69E 499389.81506589.83182.4145 94330
E1760R1130      1 2  2392133523.21N 81 027.04E 500812.61502358.7      145 9 849
Z1760R1130      11   2392133513.54N 81 031.57E 500948.61502061.8      145 9 849
Z1760R1130      12   2392133512.93N 81 029.98E 500900.81502042.9      145 9 849

  #4固定リンク)  
Old 2009年5月26日
garethsays garethsays is offline
登録ユーザー
  
 

参加日: 2008年11月
投稿: 14
修正

何を言うことは、すべてのレコードのセパレータfoo2を持っていませんでした。

Awkの' (印刷NR ) ' foo1
1の答えを返す

添付ファイルが、コマンドの展開を使用して画面にプリントアウトされています。
  #5固定リンク)  
Old 2009年5月26日
Franklin52 Franklin52 is offline Forum Staff  
モデレータ
  
 

参加日: 2007年2月
投稿数:4345
どのような展開foo2の形式は、コマンドを使用せずには何ですか?
Closed Thread

ブックマーク

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

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

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

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




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


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

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