请大佬出手,帮忙写一个给txt增加空白行的bat脚本
RT,这个bat脚本的作用是将bat脚本同一个文件夹下的*.txt打开
检测到txt内容中有一个文本行的开头是“第 xxx 章”(xx是阿拉伯数字,允许xxx前后有若干空格,或没有空格),则在该文本行之前和之后添加三个空白文本行
举例:
【原版】
我是谁啊啊啊
第 1 章 奥特曼
谁说的啊啊啊
【修改版】
我是谁啊啊啊
第 1 章 奥特曼
谁说的啊啊啊
这里大佬多!《批处理之家》
http://bbs.bathome.net/index.php @echo off
sed -e "/第 1 章 奥特曼/i\\n\n" -e "/第 1 章 奥特曼/a\\n\n" -i 1.txt
echo 已在“第 1 章 奥特曼”前后添加三个空行。
pause 1>nul 2>nul
试试这个。
notepad2有删除空行,貌似没有增加空行?确实没用过这种需求,不知道有没有。 liuzhaoyzz 发表于 2023-9-23 10:15
@echo off
sed -e "/第 1 章 奥特曼/i\\n\n" -e "/第 1 章 奥特曼/a\\n\n" -i 1.txt
echo 已在“第 1 章...
sed可以处理UTF8文本吗? batche 发表于 2023-9-23 11:52
sed可以处理UTF8文本吗?
好像不行,我写过几个批处理,比如pe/linux安装器之类的,我用c改了个程序,先把文本转换为ansi编码,sed改过之后再转换为utf8。 看个小说还要修改整理,是不是过于认真了点儿?
很多小说阅读器都有类似功能,无需修改源文件,比如开源小说阅读器https://github.com/gedoor/legado 窄口牛 发表于 2023-9-23 11:30
notepad2有删除空行,貌似没有增加空行?确实没用过这种需求,不知道有没有。
可以用正则表达替换来添加换行啊 nttwqz 发表于 2023-9-23 12:42
看个小说还要修改整理,是不是过于认真了点儿?
很多小说阅读器都有类似功能,无需修改源文件,比如开源 ...
也许他只是拿小说来举例而已呢 ppll2030 发表于 2023-9-23 23:54
也许他只是拿小说来举例而已呢
小说阅读器被不只是能用来看小说…… wsl中的sed不如linux中的sed强大 什么
我的办法,比较笨,但也可以实现
把txt文本,导入到 excel ,再利用 方方格子 的插入 N 行功能,来实现,很容易。
插入空格后,再复制黏贴到 记事本,即可 进来学习一下,谢谢大佬 本帖最后由 dos时代菜鸟 于 2023-10-1 09:45 编辑
思路如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
rem 变量初始化
set file0=0.txt
set file1=1.txt
rem 定义 "第xxx章" 中的 xxx 内容,包括 "空格 tab 0~9 一~万" 用逗号间隔
set "ltrs= , ,0,1,2,3,4,5,6,7,8,9,一,二,三,四,五,六,七,八,九,十,百,千,万"
if exist !file1! del /q !file1!
rem 逐行处理文件
for /f "delims=" %%c in (!file0!) do (
set "str1=%%c!ltrs!"
rem 把当前行内容中的 特定字符去掉
for /f "tokens=1,2* delims=," %%x in ("!ltrs!") do (
set str1=!str1:%%x=!
set str1=!str1:%%y=!
for %%i in (%%z) do (set str1=!str1:%%i=! )
)
rem 把当前行信息传递给另一个文件
rem 如果当前行在去掉特定字符后前两个字是 “第章” 就把该行前后各加三个空行。
(
if "!str1:~0,2!"=="第章" (
echo.
echo.
echo.
echo %%c
echo.
echo.
echo.
) else (
echo %%c
)
)>>!file1!
)
echo.
echo !file0! ===^>!file1!
echo ===============================
type !file1!
echo ===============================
echo.
pause
进来学习一下,谢谢大佬 批处理 无非就是 for + if + set
页:
[1]