找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30752|回复: 14

[文本处理] [已解决]用批处理如何识别文本的第几行或者标题或者文件名?

[复制链接]
发表于 2011-11-18 17:51:47 | 显示全部楼层 |阅读模式
本帖最后由 fanfande 于 2011-11-24 11:38 编辑

你好,我是新手,我正在学习bat,刚刚起步,多多指教

用批处理如何 识别文本的第几行
比如第一行,第二行,第三行
比如我要用批替换第一行或者替换这个文本的文件名
如何识别的

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-11-18 19:00:29 | 显示全部楼层
究竟是“识别”还是替换呢?
发表于 2011-11-18 21:37:28 | 显示全部楼层
findstr查看文件内容
 楼主| 发表于 2011-11-19 01:32:06 | 显示全部楼层
回复 3# sxw


    你好就算是查看内容,也不知道是不是第一行啊,第一行有什么特征呢
发表于 2011-11-19 08:04:50 | 显示全部楼层
参考findstr /v的列出行号功能~额应该是参数V吧……爪机……可能记错,你/?看看~

评分

参与人数 1PB +3 收起 理由
CrLf + 3 乐于助人

查看全部评分

发表于 2011-11-19 08:27:19 | 显示全部楼层
回复 1# fanfande
随便拿一行吧,比如第十行:

  1. findstr /n .* test.txt|findstr "^10:"
复制代码
就可以把第十行抓出来。
发表于 2011-11-19 09:09:19 | 显示全部楼层
回复 4# fanfande


    那用gawk取特定行,再findstr ?

评分

参与人数 1PB +5 收起 理由
CrLf + 5 乐于助人

查看全部评分

发表于 2011-11-19 10:00:40 | 显示全部楼层
取第一行:
  1. for /f "delims=" %%a in (1.txt) do if not defined str set str=
  2. echo 第一行:%str%
复制代码
  1. set /p str=<1.txt
  2. echo 第一行:%str%
复制代码
取第八行:
  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3.    set /a n+=1,"test/(n-8)"||echo 第8行:%%a
  4. )2>nul
  5. ::set /a 计算行数,跳过空行
复制代码
  1. for /f "tokens=1* delims=:" %%a in ('findstr /n 1.txt') do (
  2.    if %%a==8 echo 第8行:%%b
  3. )
  4. ::findstr 计算行数,兼容空行
复制代码
  1. (for /l %%a in (1 1 8) do (
  2.    set str=
  3.    set /p str=
  4. ))<1.txt
  5. echo 第8行:%str%
复制代码
发表于 2011-11-19 10:08:33 | 显示全部楼层
  1. sed "1!d" a.txt
复制代码
  1. sed -n "1p" a.txt
复制代码
发表于 2011-11-19 10:47:21 | 显示全部楼层
awk居然没用gawk,呵呵,补一个还是抓第十行的:

  1. gawk "NR==10{print $0} test.txt"
复制代码

评分

参与人数 1PB +5 收起 理由
CrLf + 5 乐于助人

查看全部评分

发表于 2011-11-19 18:21:33 | 显示全部楼层
回复 10# weichenxiehou
  1. gawk "NR==10" test.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

发表于 2011-11-20 10:49:23 | 显示全部楼层
回复 11# awk
晕,居然把文本写到引号内了,my fault……awk兄的功底很深,佩服。
 楼主| 发表于 2011-11-24 13:19:13 | 显示全部楼层
回复 11# awk


    你好我这样
gawk "NR==10" test.txt >1.txt
并没有把
test的第10行提取出来啊
发表于 2011-11-24 14:12:45 | 显示全部楼层
回复 13# fanfande


    你有下载 gawk 并放在 %path% 中的路径下或者当前目录下吗?
 楼主| 发表于 2011-11-26 17:23:48 | 显示全部楼层
回复 14# CrLf


    你好,版主,放到system32里面去了就可以拉!
假如:
有N个txt文档!
用批处理将他们的第一行内容的提取出来合体,第二行内容的提取出来并合体,第三行内容的提取出来并合体....以此类推
结果放在新的文件夹内命名为1行合体,2行合体.....
这样可以吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:41 , Processed in 0.021892 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表