-1

重複: https://stackoverflow.com/questions/1259545/let-me-know-alternate-command-in-dos-for-following-sed-and-perl-commands-closed


次のコマンドは、UNIX ボックスで独自の実装を持っています。

informatica(etlツール)で実装する必要があります。同じためのWindowsソリューションがない場合

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

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

2 に答える 2

2

これら 2 つのコマンドは非常に似ているように見えますが、(同時に) 少し奇妙です。

どちらも「#」を含む行を削除しようとしているように見えますが、最初のものは行頭の単一の「#」のみを削除し、2 つ目は行の任意の場所にある単一の「#」のみを削除します -どちらも行全体を削除しません!

おそらく必要なのは、Perl バージョンまたはsed バージョンのいずれかです。

sed は Perl よりも少し軽量です。Windows 用に入手できます。

あなたが望むことを私が期待するコマンドのsedバージョン:

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

これですべての作業が完了します。「-i」(インプレース)機能には GNU sed を使用する必要があります。上記のコマンドは次のようになります。

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

これに:

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

Perl でも同様のことができますが、インストールするのはかなり面倒です。

于 2009-08-12T07:19:50.417 に答える
0

または、MKS Toolkit (または cgywin) を入手してください。Windows で同じ Unix スクリプトを再利用することで、大きな成功を収めています。一重引用符付きの sqplus は好まれませんでした。

于 2009-09-01T00:04:39.670 に答える