标题: [文本处理] [已解决]批处理如何把文件的第一行提取出来放到最后一行? [打印本页]
作者: iambater 时间: 2012-11-22 09:14 标题: [已解决]批处理如何把文件的第一行提取出来放到最后一行?
在文件夹中有N个txt,思路是将各自txt第一行的文字提取出来,放到各自的最后一行去!
不太会表达,不知道大家看清楚没有!
再次感谢:tmplinshi版主!顺祝心想事成!事业顺利!
作者: tmplinshi 时间: 2012-11-22 09:19
本帖最后由 tmplinshi 于 2012-11-22 09:30 编辑
以下代码是将第一行复制到文件末尾。第一行不能超过 1024 个字节(中文等全角字符占两个字节,英文/数字之类的半角字符占 1 个字节)。- @echo off
- for %%a in (*.txt) do (
- set /p line1=<"%%a"
- set file="%%a"
- setlocal enabledelayedexpansion
- echo,!line1!>>!file!
- endload
- )
复制代码
作者: Batcher 时间: 2012-11-22 10:15
- gawk "{if(NR==1)s=$0;print}END{print s}" a.txt >b.txt
复制代码
作者: iambater 时间: 2012-11-22 12:09
本帖最后由 iambater 于 2012-11-22 18:44 编辑
回复 2# tmplinshi
你好版主!
假如我想将各自txt第一行的文字提取出来文字放到末尾的时候,前面和后面加字怎么加呢?
比如原来的第一行是 批处理之家
通过bat处理提取后放到最后一行,但是目前想在他的前面和后面加字!
比如变成 这是批处理之家学习的好地方!
这里红色的字就是提取后再加上的!
今天看到的好多帖子都是您处理的,佩服啊!
再次感谢:tmplinshi版主!顺祝心想事成!事业顺利!
作者: tmplinshi 时间: 2012-11-22 12:56
回复 4# iambater - @echo off
- for %%a in (*.txt) do (
- set /p line1=<"%%a"
- set file="%%a"
- setlocal enabledelayedexpansion
- echo,前面!line1!后面>>!file!
- endload
- )
复制代码
作者: tmplinshi 时间: 2012-11-22 12:57
回复 4# iambater - @echo off
- for %%a in (*.txt) do (
- gawk "{if(NR==1)s=$0}END{print \"前面\" s \"后面\" >>FILENAME}" "%%a"
- )
复制代码
作者: Batcher 时间: 2012-11-22 15:04
复制代码
作者: terse 时间: 2012-11-22 21:36
- @echo off&setlocal enabledelayedexpansion
- md "temp_\" 2>nul
- for /f "tokens=*" %%i in ('dir /b /a-d *.txt') do (
- set /p line=<"%%i"
- (more +1 "%%i"&echo 前面!line!后面)>"temp_\%%~ni_tem.txt"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |