[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 fanfande 于 2011-11-24 11:38 编辑

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

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

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
有创新,多创新;无创新,多模仿;无模仿,多坚持

究竟是“识别”还是替换呢?

TOP

findstr查看文件内容

TOP

回复 3# sxw


    你好就算是查看内容,也不知道是不是第一行啊,第一行有什么特征呢
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

参考findstr /v的列出行号功能~额应该是参数V吧……爪机……可能记错,你/?看看~
1

评分人数

    • CrLf: 乐于助人PB + 3

TOP

回复 1# fanfande
随便拿一行吧,比如第十行:
  1. findstr /n .* test.txt|findstr "^10:"
复制代码
就可以把第十行抓出来。
看得多说得多,远比不上写得多。

TOP

回复 4# fanfande


    那用gawk取特定行,再findstr ?
1

评分人数

    • CrLf: 乐于助人PB + 5

TOP

取第一行:
  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%
复制代码

TOP

  1. sed "1!d" a.txt
复制代码
  1. sed -n "1p" a.txt
复制代码

TOP

awk居然没用gawk,呵呵,补一个还是抓第十行的:
  1. gawk "NR==10{print $0} test.txt"
复制代码
1

评分人数

    • CrLf: 乐于助人PB + 5
看得多说得多,远比不上写得多。

TOP

回复 10# weichenxiehou
  1. gawk "NR==10" test.txt
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 11# awk
晕,居然把文本写到引号内了,my fault……awk兄的功底很深,佩服。
看得多说得多,远比不上写得多。

TOP

回复 11# awk


    你好我这样
gawk "NR==10" test.txt >1.txt
并没有把
test的第10行提取出来啊
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

回复 13# fanfande


    你有下载 gawk 并放在 %path% 中的路径下或者当前目录下吗?

TOP

回复 14# CrLf


    你好,版主,放到system32里面去了就可以拉!
假如:
有N个txt文档!
用批处理将他们的第一行内容的提取出来合体,第二行内容的提取出来并合体,第三行内容的提取出来并合体....以此类推
结果放在新的文件夹内命名为1行合体,2行合体.....
这样可以吗
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

返回列表