 
- 帖子
- 856
- 积分
- 1104
- 技术
- 4
- 捐助
- 0
- 注册时间
- 2021-8-30
|
[文本处理] 【已解决】求bat脚本在1.txt的倒数第4行前面插入2.txt里面的内容。谢谢
本帖最后由 yyz219 于 2024-1-28 12:43 编辑
完美解决了:
方法一(倒数插入):
@echo off
for /f %%n in ('sed -n "$=" 1.txt') do set/a "n=%%n-4"
sed "%n% r 2.txt" 1.txt>1.new.txt
【注意:2.txt————最后要有一行空行】
自动判断有没有空行:
::【在 “1.txt” 的倒数第4行 插入 “2.txt” 里面的内容】【自动判断2.txt 是否存在末尾空行】
@echo off
for /f %%n in ('sed -n "$=" 1.txt') do (set/a "n=%%n-4, m=n+1")
(findstr /v $ 2.txt>nul && (sed -e "%m% s/^/\n/" -e "%n% r 2.txt" 1.txt)||sed "%n% r 2.txt" 1.txt)>3.txt
exit
方法二(倒数插入):
1.bat
1.txt
2.txt
全部保存为UTF-8编码
@echo off
chcp 65001 >nul
gawk -vN=4 "NR>FNR;NR==FNR{if(NR>N){print a[NR%%N]}{a[NR%%N]=$0;NN=NR}}END{for(i=NN-N;++i<=NN;)if(i%%N in a)print a[i%%N]}" 1.txt 2.txt>3.txt
=======================================
三、第4行(不是倒数)插入:
sed "4r2.txt" 1.txt>3.txt
【注意:2.txt————最后要有一行空行】
自动判断有没有空行
::【在 “1.txt” 的第4行 插入 “2.txt” 里面的内容】【自动判断2.txt 是否存在末尾空行】
@echo off
(findstr /v $ 2.txt>nul && (sed -e "5 s/^/\n/" -e "4 r 2.txt" 1.txt)||sed "4 r 2.txt" 1.txt)>4.txt
exit
===========================================
原来的问题:
求bat:在1.txt的倒数第4行前面插入2.txt里面的内容。谢谢
(2.txt里面的内容————有:< \ /> "" 也有中文 等)【第三方也行】
============================================================ |
-
1
评分人数
-
|