Board logo

标题: [文本处理] [已解决]批处理如何将文本每两行合并为一行输出到新的文本里? [打印本页]

作者: ams    时间: 2016-1-10 21:11     标题: [已解决]批处理如何将文本每两行合并为一行输出到新的文本里?

文本如下
  1. aaaaaaaa
  2. bbbbbbbb
  3. cccccccccc
  4. dddddddd
复制代码
请教如何变成如下
  1. aaaaaaaa bbbbbbbb
  2. cccccccccc dddddddd
复制代码
判断时不能写死数字,例子的4行内容为示范,真实文本行数不固定
作者: gawk    时间: 2016-1-10 21:46

  1. sed "$!N;s/\n/ /" 1.txt > 2.txt
复制代码

作者: gawk    时间: 2016-1-10 21:47

  1. gawk "NR%2{printf $0\" \";next}1"  1.txt > 2.txt
复制代码

作者: gawk    时间: 2016-1-10 21:49

  1. @echo off
  2. set "MergeRows=2"
  3. (for /f  %%a in (1.txt) do (
  4.     set /a n+=1
  5.     set /a m=n%%%MergeRows%
  6.     set /p=%%a <nul
  7.     set /a test=1/m 2>nul || echo;
  8. ))>2.txt
复制代码

作者: pcl_test    时间: 2016-1-10 21:54

  1. @echo off
  2. (for /f "delims=" %%a in ('type "a.txt"') do (
  3.     if not defined n (set/p"=%%a "&set n=1) else (echo;%%a&set n=)
  4. ))<nul>"b.txt"
  5. pause
复制代码

作者: ams    时间: 2016-1-10 22:05

感谢gawk和pcl_test




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2