Board logo

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

作者: 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
随便拿一行吧,比如第十行:
  1. findstr /n .* test.txt|findstr "^10:"
复制代码
就可以把第十行抓出来。
作者: sxw    时间: 2011-11-19 09:09

回复 4# fanfande


    那用gawk取特定行,再findstr ?
作者: CrLf    时间: 2011-11-19 10:00

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

作者: awk    时间: 2011-11-19 10:08

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

作者: weichenxiehou    时间: 2011-11-19 10:47

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

作者: awk    时间: 2011-11-19 18:21

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

作者: 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://bathome.net./) Powered by Discuz! 7.2