The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
sürgős segítség: szeretné, hogy ellenőrizze az adatokat az Oracle flate fájl unknown123 Shell programozás és Scripting 3 05-18-2009 06:36 PM
hogy hogyan kell átalakítani az eredménye, válasszuk a Lekérdezés a vesszővel elválasztott adatok - sürgős pls Hemamalini Shell programozás és Scripting 1 06-16-2008 05:27 AM
formázás merevlemezt (mosása) Jamiee SUN Solaris 0 06-12-2008 08:48 AM
Segítség helyett, vagy kimosó unicode karakterek roninuta Shell programozás és Scripting 3 01-21-2008 11:39 AM
[sürgős segítségre van szükségük] összehasonlítandó adat Bucci Shell programozás és Scripting 2 02-27-2007 11:27 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 05-26-2009
padhu.47 padhu.47 is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2008
Hozzászólások: 4
Post URGENT: - Data Súroló

Hi All,

Van egy Flatfile (bármely elhatárolási) millió sornyi adatot, ahol már a scrubb Az adatok a sorban a pozíció ($ 1) megadott bemeneti paramétere amíg a hossz ($ 2) mivel a bemeneti paramétere. I használt awk, sed de nem tudok csinálni.

sikál kulcs - 12345 kell helyettesíteni 67890
pl: 01289 - mielőtt kimosó
06789 - miután kimosó


Például: sample.ksh 6 4



Input - Flatfile:
-------
"1234,5678, 0987,12345667,000000976655, +1234,013994878356 "
"0987,23467,11243554,0000887651,1234567,09876,1234455 "
"0987675,1223443,797784784784,09866545, +232322,097865 "

Azt akarom, hogy a kimenet csiszolt fájlt az alábbiak szerint:

"1234,0678, 0987,12345667,000000976655, +1234,013994878356 "
"0987,78967,11243554,0000887651,1234567,09876,1234455 "
"0987675,6778443,797784784784,09866545, +232322,097865 "
  #2 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Sep 2006
Hozzászólások: 2.540
Ha van Python
Kód:
#!/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)
kimenet
Kód:
# python test.py
"1234,0678,0987,12345667,000000976655,+1234,013994878356"
"0987,78967,11243554,0000887651,1234567,09876,1234455"
"0987675,6778443,797784784784,09866545,+232322,097865"
  #3 (permalink)  
Old 05-26-2009
summer_cherry summer_cherry is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jun 2007
Helyszín: Kína Peking
Hozzászólások: 1.088
Kód:
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
  #4 (permalink)  
Old 05-26-2009
padhu.47 padhu.47 is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2008
Hozzászólások: 4
URGENT: - Data kimosó

Hi All, köszönöm a választ ....
i dont volna python vagy perl ....
Csak ksh, bash, sh, csh

kérem, segítsen nekem
  #5 (permalink)  
Old 05-26-2009
Neo's Avatar
Neo Neo is online now Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Helyszín: Ázsia
Hozzászólások: 6.754
Idézet:
Originally Posted by padhu.47 View Post
Hi All, köszönöm a választ ....
i dont volna python vagy perl ....
Csak ksh, bash, sh, csh

kérem, segítsen nekem
Jobb telepítése PERL vagy a Python. Az ingyenes és egyszerűen telepíthető.
  #6 (permalink)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Sep 2006
Hozzászólások: 2.540
Idézet:
Originally Posted by padhu.47 View Post
Hi All, köszönöm a választ ....
i dont volna python vagy perl ....
Csak ksh, bash, sh, csh

kérem, segítsen nekem
majd awk
Kód:
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
  #7 (permalink)  
Old 05-27-2009
padhu.47 padhu.47 is offline
Regisztrált felhasználó
  
 

Join Date: Apr 2008
Hozzászólások: 4
URGENT: - Data Súroló

A fenti kód nem működik .....
kérem, segítsen nekem írásban ezt a kódot a KSH, CSH, SH ....

----- ----- Post Update

Helló srácok,

Én írtam egy awk prog ... alatt csinálni. de ezt minden számban belül Flatfile.

kód #:
#! / usr / bin / awk-f
BEGIN (
CnvFrom \u003d "0123456789";
CnvTo \u003d "4590382617";

Mező \u003d 1;
)
(
Newfield \u003d ""
(i \u003d 1; i <\u003d length ($ field); i + +) (
char \u003d substr ($ field, i, 1);
if (pos \u003d index (CnvFrom, char))
char \u003d substr (CnvTo, pos, 1)
Newfield \u003d Newfield char
)
$ Field \u003d Newfield
Nyomtatás
)


De az én requirment a change / translate értékek az álláspont (bemeneti paramétere - $ 2) és hossza (bemeneti paramétere - $ 3) A Flatfile említett könyvtár (bemeneti paramétere - $ 1). kérem, segítsen nekem ....

pl: scrub.ksh fájl1 68 9 ($ 1 - filename, $ 2-postion (68), $ 3 - lenth az álláspontja (9))

Mielőtt bozót-fájl1:
---------------------
"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"


Miután bozót-fájl1:
-----------------

"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"

kérem, segítsen nekem ..... Azt akarom, hogy a bozót mint az input paraméterek .....
kérem, segítsen ....

Last edited by padhu.47; 05/27/2009 at 05:43 AM..
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 07:41 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0