标题: [文本处理] 【已解决】BAT:合并与拆分文本,如何以空行为分割? [打印本页]
作者: 思想之翼 时间: 2023-9-2 07:08 标题: 【已解决】BAT:合并与拆分文本,如何以空行为分割?
本帖最后由 思想之翼 于 2023-9-2 10:36 编辑
1.txt记录数据:
AAA AAA
AAA
2.txt记录数据:
BBB BBB BBB
BBB BBB
BBB
3.txt记录数据:
CCC
CCC CCC
CCC CCC CCC
【问题1】:如何合并上述文本,中间以空行隔开?结果123.txt为:
AAA AAA
AAA
BBB BBB BBB
BBB BBB
BBB
CCC
CCC CCC
CCC CCC CCC
【问题2】:如何将上述123.txt,以空行为分隔,拆分成1.txt 2.txt 3.txt,结果为:
1.txt:
AAA AAA
AAA
2.txt:
BBB BBB BBB
BBB BBB
BBB
3.txt:
CCC
CCC CCC
CCC CCC CCC
注:type e:\00\*.txt > e:\00\123.txt 无法加空行
作者: hfxiang 时间: 2023-9-2 09:57
回复 1# 思想之翼
按楼主提供的样本,如下方式经测试有效
合并- awk -v"RS=" "{print $0,ORS}" 1.txt 2.txt 3.txt>4.txt
复制代码
拆分- awk -v"RS=" "{print $0>NR\".txt\"}" 4.txt
复制代码
作者: 77七 时间: 2023-9-2 10:06
本帖最后由 77七 于 2023-9-2 11:05 编辑
合并- @echo off
- (for /l %%l in (1,1,3) do (
- for /f "useback delims=" %%a in ("%%l.txt") do (
- echo %%a
- )
- echo=
- ))>123.txt
- pause
复制代码
拆分
- @echo off
- setlocal enabledelayedexpansion
- set n=1
- for /f "tokens=1* delims=:" %%a in ('findstr /n .* "123.txt"') do (
- if "%%b" equ "" (
- if exist "!n!.txt" (
- set /a n+=1
- )
- ) else (
- >>"!n!.txt" echo %%b
- )
- )
- endlocal
- pause
复制代码
合并2
- @echo off
- find /v "" *.txt|findstr /irvc:"^-.*\.TXT$"|more /s|more +1>123.txt
- pause
复制代码
合并3
- @echo off
- type *.txt 2>&1|findstr /ivec:".txt"|more /s|more +1>123.txt
- pause
复制代码
作者: 877 时间: 2023-9-6 09:39
回复 3# 77七
大佬,合并后的文件名如何以文件夹名命名?
作者: 77七 时间: 2023-9-6 10:13
回复 4# 877
- @echo off
- for %%a in (.) do (
- type *.txt 2>&1|findstr /ivec:".txt"|more /s|more +1>"%%~nxa.txt"
- )
- pause
复制代码
作者: 877 时间: 2023-9-6 10:27
回复 5# 77七 - ffmpeg -i 123.mp4 -an -vf select='eq(pict_type\,I)' -vsync 2 -f image2 image-%03d.png
复制代码
大佬,给优化一下这段代码吧!
想弄成点击后先创建以*.mp4为名称的文件夹,然后
提取的png图片也在这个文件夹中
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |