返回列表 发帖
回复 4# yyz219


在我的电脑上测试2楼代码是成功的。

1、你用的gawk版本是?
2、你是在CMD窗口执行的2楼命令?还是把它放在bat脚本里面执行的?
3、请把你的1.txt和2.txt打包上传我试试。
1

评分人数

    • yyz219: 在6楼,辛苦了技术 + 1
测试代码之前请做好备份

TOP

回复 6# yyz219


是运行bat

2楼说的非常清楚,需要在命令行窗口执行。

如果你想在bat脚本里面执行,需要把1个百分号替换为2个百分号,例如:
  1. 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
复制代码
1

评分人数

测试代码之前请做好备份

TOP

本帖最后由 ShowCode 于 2024-1-21 10:23 编辑

回复 6# yyz219


gawk版本————我不知道


查看版本的方法:

C:\Test> gawk --version
GNU Awk 5.1.0, API: 3.0
Copyright (C) 1989, 1991-2020 Free Software Foundation.
测试代码之前请做好备份

TOP

回复 9# yyz219


1.bat
1.txt
2.txt
全部保存为UTF-8编码
  1. @echo off
  2. chcp 65001 >nul
  3. 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
复制代码
1

评分人数

    • yyz219: 完美解决了,再次感谢技术 + 1
测试代码之前请做好备份

TOP

返回列表