标题: [文本处理] [已解决]用批处理如何识别文本的第几行或者标题或者文件名? [打印本页]
作者: fanfande 时间: 2011-11-18 17:51 标题: [已解决]用批处理如何识别文本的第几行或者标题或者文件名?
本帖最后由 fanfande 于 2011-11-24 11:38 编辑
你好,我是新手,我正在学习bat,刚刚起步,多多指教
用批处理如何 识别文本的第几行
比如第一行,第二行,第三行
比如我要用批替换第一行或者替换这个文本的文件名
如何识别的
作者: CrLf 时间: 2011-11-18 19:00
究竟是“识别”还是替换呢?
作者: sxw 时间: 2011-11-18 21:37
findstr查看文件内容
作者: fanfande 时间: 2011-11-19 01:32
回复 3# sxw
你好就算是查看内容,也不知道是不是第一行啊,第一行有什么特征呢
作者: bluewing009 时间: 2011-11-19 08:04
参考findstr /v的列出行号功能~额应该是参数V吧……爪机……可能记错,你/?看看~
作者: weichenxiehou 时间: 2011-11-19 08:27
回复 1# fanfande
随便拿一行吧,比如第十行:- findstr /n .* test.txt|findstr "^10:"
复制代码
就可以把第十行抓出来。
作者: sxw 时间: 2011-11-19 09:09
回复 4# fanfande
那用gawk取特定行,再findstr ?
作者: CrLf 时间: 2011-11-19 10:00
取第一行:- for /f "delims=" %%a in (1.txt) do if not defined str set str=
- echo 第一行:%str%
复制代码
- set /p str=<1.txt
- echo 第一行:%str%
复制代码
取第八行:- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (1.txt) do (
- set /a n+=1,"test/(n-8)"||echo 第8行:%%a
- )2>nul
- ::set /a 计算行数,跳过空行
复制代码
- for /f "tokens=1* delims=:" %%a in ('findstr /n 1.txt') do (
- if %%a==8 echo 第8行:%%b
- )
- ::findstr 计算行数,兼容空行
复制代码
- (for /l %%a in (1 1 8) do (
- set str=
- set /p str=
- ))<1.txt
- echo 第8行:%str%
复制代码
作者: awk 时间: 2011-11-19 10:08
复制代码
复制代码
作者: weichenxiehou 时间: 2011-11-19 10:47
awk居然没用gawk,呵呵,补一个还是抓第十行的:- gawk "NR==10{print $0} test.txt"
复制代码
作者: awk 时间: 2011-11-19 18:21
回复 10# weichenxiehou 复制代码
作者: weichenxiehou 时间: 2011-11-20 10:49
回复 11# awk
晕,居然把文本写到引号内了,my fault……awk兄的功底很深,佩服。
作者: fanfande 时间: 2011-11-24 13:19
回复 11# awk
你好我这样
gawk "NR==10" test.txt >1.txt
并没有把
test的第10行提取出来啊
作者: CrLf 时间: 2011-11-24 14:12
回复 13# fanfande
你有下载 gawk 并放在 %path% 中的路径下或者当前目录下吗?
作者: fanfande 时间: 2011-11-26 17:23
回复 14# CrLf
你好,版主,放到system32里面去了就可以拉!
假如:
有N个txt文档!
用批处理将他们的第一行内容的提取出来并合体,第二行内容的提取出来并合体,第三行内容的提取出来并合体....以此类推
结果放在新的文件夹内命名为1行合体,2行合体.....
这样可以吗
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |