我在一个文件夹中有几十个CSV文件。我需要:
到目前为止,只有一个标题组合并保留:
@echo off
setlocal
set first=1
set fileName="combined.csv"
>%fileName% (
for %%F in (*.csv) do (
if not "%%F"==%fileName% (
if defined first (
type "%%F"
set "first="
) else more +1 "%%F"
)
)
)
不知道如何替换/删除字符。
答案 0 :(得分:0)
这可能会使用GnuSED
。在复制期间将CRLF添加到每个文件的末尾后,Sed会删除空字符和所有额外的空白行。
More
在每个文件中有64K行的错误会暂停,如果这是一个问题,它还会将TAB转换为空格。
@echo off
setlocal
set first=1
>"combined.bin" (
for %%F in (*.csv) do (
if defined first (
type "%%F"
set "first="
) else (
more +1 "%%F"
)
echo(
)
)
sed -e "/^$/"d -e "s/\x00//g" < "combined.bin" > "combined.csv"
del "combined.bin"