windows下如何实现类似awk获取文件字段值功能

用过linux系统的伴侣都应该知道awk功能的壮大,那windows系统DOS下有没有近似功能号令,可以或许获取文件中或号令输出文本中指定字段的值呢?谜底是必定的,FOR 号令就可以或许实现该功能。

方式/步骤

  1. 1

    for号令在XP系统上就已经起头存在了,它的功能也很壮大,可以完当作良多复杂的功能。

  2. 2

    获取字段值只是for号令浩繁功能中的一个,经由过程加参数“/f”来实现。

  3. 3

    如文件students.txt内容如下:

    姓名    春秋   成就

    张三    18    80

    李四    19    86

    要取得所有人的春秋,可以用号令:

    for /f "skip=1 tokens=2" %i in (students.txt) do echo %i

    “skip=1 ”暗示跳过第一行,从第二行起头读取文件

    “tokens=2”暗示提取第二个字段值

    没有指定“delims”分隔符的值,利用默认分隔符——“空格和TAB键”作为各字段的分隔符。如需指定“,”作为分隔符,只需如下输入:

    for /f "skip=1 tokens=2 delims=," %i in (students.txt) do echo %i

  4. 4

    如需读取记实并将每笔记录按后面的格局生当作一句话:XXX本年XX岁,成就是XX。可以用号令:

    for /f "skip=1 tokens=1,2*" %i in (students.txt) do echo %i本年%j岁,成就是%k

    “tokens=1,2*”暗示提取第一、二字段,并将第二字段后的所有内容做为第三字段的值输出。

    %i,%j,%k别离对应第一、二、三字段的值

  5. 5

    for号令还可以从号令输出的成果中提出字段值,如从历程列表中查找记事本notepad历程并获取PID的号令可如下:

    for /f "usebackq tokens=2" %i in (`tasklist^|findstr notepad`) do echo %i

    如需利用号令,必需利用“usebackq”参数,而且号令要用反引号符“`”(键盘上tab键上方的键)引起来。号令中若有特别字符,需在前面加“^”字符进行字符转义。

注重事项

  • 若是认为本经验对您有所帮忙,请点击下面【投票】撑持一下作者!
  • 若是您想今后随时浏览请点击右下角飘浮按钮【保藏】!若是您认为本经验可以或许帮忙到您的伴侣,请点击页面右下角的双箭头进行分享。
  • 发表于 2018-06-25 00:00
  • 阅读 ( 535 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论