2009-08-12 3 views
-1

Duplizieren: https://stackoverflow.com/questions/1259545/let-me-know-alternate-command-in-dos-for-following-sed-and-perl-commands-closedWie kann ich diese sed und perl Einzeiler zu Informatica übersetzen?


die folgenden Befehle haben einzigartige Implementierung in Unix-Rechner.

Muss in Informatica (ETL-Tool) implementieren. Wenn keine Fenster Lösung für die gleiche

sed 's/^#//g' <kam_account_calls.txt> kam_account_calls1.txt 

perl -pi -e 's/#//' /coe/informatica/v712_OMJ/FAD/TgtFiles/C3i/CNTDEMO.csv 

Antwort

2

Diese beiden Befehle sehen ganz ähnlich und (zugleich) seltsam ein bisschen.

Beide scheinen zu versuchen, eine Zeile mit '#' zu entfernen, aber die erste wird nur ein einziges '#' am Anfang einer Zeile entfernen und die zweite wird nur ein einziges '#' entfernen in der Linie - keiner wird die ganze Linie entfernen!

Was Sie wahrscheinlich wollen, ist entweder die Perl-Version oder die Sed-Version.

sed ist etwas leichter als Perl. Sie können get it for Windows.

Die sed Version des Befehls I erwarten würde tun, was Sie wollen:

sed -i -e '/^#.*$/d' -e 's/[ \t]*#.*$//g' kam_account_calls.txt 

Das wird die ganze Arbeit an Ort und Stelle tun. Sie müssen GNU sed für die Funktion "-i" (Inplace) verwenden. Der obige Befehl stellt sich folgendermaßen aus:

a,b,c 
# a comment 
d,e,f 
# another comment 
g,h,i # test comment 
j,k,l # test comment with space 

in dieser:

a,b,c 
d,e,f 
g,h,i 
j,k,l 

Perl für Sie eine ähnliche Sache tun, aber es ist viel mehr Schwergewicht zu installieren.

0

Oder holen Sie sich MKS Toolkit (oder cgywin), wir hatten gute Erfolge bei der Wiederverwendung unserer Unix-Skripte unter Windows. sqplus mit einem einzigen Zitat wurde nicht gemocht.

Verwandte Themen