![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 緊急支援: flateファイルからOracleのデータを確認する | unknown123 | シェルプログラミングとスクリプティング | 3 | 2009年5月18日 06:36午後 |
| plsの方法を選択クエリのデータをカンマ区切りの結果-緊急に変換する | Hemamalini | シェルプログラミングとスクリプティング | 1 | 2008年6月16日 05:27午前 |
| ハードディスクドライブ(洗浄)の書式設定 | Jamiee | Sun Solaris | 0 | 2008年6月12日 08:48午前 |
| Unicode文字を交換、または洗浄ヘルプ | roninuta | シェルプログラミングとスクリプティング | 3 | 2008年1月21日 11:39午前 |
| [緊急の必要があるヘルプ]データを比較 | bucci | シェルプログラミングとスクリプティング | 2 | 2007年2月27日 11:27午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
こんにちはすべて、
私はFlatfile (任意の限界)はどこの位置( $ 1 )入力パラメータの長さ( $ 2 )は、入力パラメータに指定するまでは、その行のデータを与えられたからscrubbしてデータの行数百万を持っている。私は、 Awkの活用 セッド しかし私はそれを行うにはできません。 スクラブキー- 12345 67890に取って代わられるはず 例: 01289 -洗浄前 06789スクラブ-後 例: sample.ksh 6月4日 入力- Flatfile : ------- " 1234 、5678、 0987,12345667,000000976655 、 +1234,013994878356 " " 0987 、23467,11243554,0000887651,1234567,09876,1234455 " " 0987675 、1223443,797784784784,09866545 、 +232322,097865 " 私は以下のように洗ったのファイルとして出力します: " 1234 、0678、 0987,12345667,000000976655 、 +1234,013994878356 " " 0987 、78967,11243554,0000887651,1234567,09876,1234455 " " 0987675 、6778443,797784784784,09866545 、 +232322,097865 " |
|
||||
|
している場合はPython
コード:
#!/usr/bin/env python
import string
FROM="12345"
TO="67890"
table=string.maketrans(FROM,TO)
for line in open("file"):
line=line.strip().split(",")
line[1]=line[1][:4].translate(table) + ''.join(line[1][4:])
print ','.join(line)
コード:
# python test.py "1234,0678,0987,12345667,000000976655,+1234,013994878356" "0987,78967,11243554,0000887651,1234567,09876,1234455" "0987675,6778443,797784784784,09866545,+232322,097865" |
|
||||
|
コード:
sub scrub{
my($pos,$len)=(@_);
while(<DATA>){
substr($_,$pos-1,$len) =~ y/12345/67890/;
print $_;
}
}
scrub(6,3);
__DATA__
1234,5678,0987,12345667,000000976655,+1234,013994878356
0987,23467,11243554,0000887651,1234567,09876,1234455
0987,1223443,797784784784,09866545,+232322,097865
|
|
||||
|
awkは使用し
コード:
awk -F"," 'BEGIN{
t["1"]="6"
t["2"]="7"
t["3"]="8"
t["4"]="9"
t["5"]="0"
}
{
s=""
for(i=1;i<=4;i++){
if( substr($2,i,1) in t ){
s=s t[substr($2,i,1)]
}else{
s=s substr($2,i,1)
}
}
$2=s substr($2,5)
}
1
' OFS="," file
|
|
||||
|
緊急: -データ洗浄
上記のコードが動作していません.....
KSH 、 CSH 、 shに....でこのコードを書くに助けてください -----ポストを更新----- ハローみんな、 私は... 、それをするには、次のAwkのプログレッシブ書いている。しかし、その内のすべての数字をFlatfileをこなした。 コード番号: # ! / usr / binに/ awkは- fを 開始( CnvFrom \u003d " 0123456789 " ; CnvTo \u003d " 4590382617 " ; フィールド\u003d 1 ; ) ( ニューフィールド\u003d " " ( ⅰ \u003d 1 ;私< \u003d長さ( $フィールド) ;私+ + ) ( 文字\u003d substr ( $フィールド、私は、 1 ) ; 場合(現在\u003d指数( CnvFrom 、文字) ) 文字\u003d substr ( CnvTo 、現在、 1 ) ニューフィールド\u003dニューフィールド文字 ) $フィールド\u003dニューフィールド 印刷 ) しかし、私のrequirmentを変更するには、 /の位置を(入力パラメータ- $ 2 ) 、長さ(入力パラメータ- $ 3 )をFlatfileのディレクトリ(入力パラメータ- $ 1 )に記載のための値を変換します。助けてください.... 例: scrub.kshファイル1 68 9 ( $ 1 -ファイル名、 $ 2 - postion ( 68 ) 、 $ 3 -ポジション( 9 ) )からレンス 手術前に、ファイル1 : --------------------- " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000007102 " 、 " 0000377310013683931" 、 20090114,20080301,20080331,20060304 、 000000000005897 。 " " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000007102 " 、 " 0000377310013683931" 、 20090114,20080301,20080331,20060304 、 000000000005897 。 " " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000010739 " 、 " 0000377310044493243" 、 20090114,20080501,20080531,20070224 、 000000000000000 。 " " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000010739 " 、 " 0000377311018365607" 、 20090114,20080401,20080430,20070224 " 手術後のファイル1 : ----------------- " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000007102 " 、 " 0000377310450210705" 、 20090114,20080301,20080331,20060304 、 000000000005897 。 " " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000007102 " 、 " 0000377310450210705" 、 20090114,20080301,20080331,20060304 、 000000000005897 。 " " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000010739 " 、 " 0000377310433370930" 、 20090114,20080501,20080531,20070224 、 000000000000000 。 " " 37713000000 " 、 " 12000000202 " 、 " 0000000000000000000010739 " 、 " 0000377311451028246" 、 20090114,20080401,20080430,20070224 " 助けてください.....私は、入力パラメータを1として、スクラブしたい..... ....助けてください。 編集padhu.47で最終; 2009年5月27日に 05:43午前.. |