以下命令在 unix box 中具有独特的实现。
需要在 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
以下命令在 unix box 中具有独特的实现。
需要在 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
这两个命令看起来非常相似并且(同时)有点奇怪。
两者看起来都在尝试删除包含“#”的行,但第一个只会删除行首的单个“#”,第二个只会删除行中任何位置的单个“#”-也不会删除整条线!
您可能想要的是 Perl 版本或sed 版本。
sed 比 Perl 更轻量级。您可以为 Windows 获取它。
我希望执行您想要的命令的 sed版本:
sed -i -e '/^#.*$/d' -e 's/[ \t]*#.*$//g' kam_account_calls.txt
这将完成整个工作。您需要使用 GNU sed 来实现“-i”(就地)功能。上面的命令变成这样:
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 可以为您做类似的事情,但安装起来要重得多。
或者获取 MKS Toolkit(或 cgywin),我们在 Windows 上重用相同的 Unix 脚本取得了巨大成功。不喜欢带单引号的 sqplus。