Board logo

标题: [文本处理] [已解决]bat或第三方命令行如何实现如下功能? [打印本页]

作者: shootman2    时间: 2015-4-14 23:38     标题: [已解决]bat或第三方命令行如何实现如下功能?

本帖最后由 shootman2 于 2015-4-15 10:12 编辑

假如有一个文本123.txt,内容为

123 abcdef
456 qweqweqwe
789 asdfghjkl

执行一个命令行,列出其中的以 123 789 开头的行!
我想用gawk来实现,结果没有成功,求助大神实现!
作者: pcl_test    时间: 2015-4-15 00:14

  1. @echo off
  2. gawk "/^(123|789)/" "test.txt"
  3. pause
复制代码

作者: pcl_test    时间: 2015-4-15 00:18

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (test.txt) do (
  4. set "str=%%a"
  5. if "!str:~,3!" equ "123" (echo,%%a) else if "!str:~,3!" equ "789" (echo,%%a)
  6. )
  7. pause
复制代码

作者: pcl_test    时间: 2015-4-15 00:33

  1. @echo off
  2. sed -n "/^123\|^789/p" "test.txt"
  3. pause
复制代码

作者: shootman2    时间: 2015-4-15 09:32

回复 2# pcl_test


    嗯!这个好,太棒了!!!问题解决了!
作者: gawk    时间: 2015-4-15 11:25

  1. grep -E "^123|^789" 1.txt > 2.txt
复制代码

作者: gawk    时间: 2015-4-15 11:26

  1. sed "/^123\|^789/!d" 1.txt > 2.txt
复制代码

作者: gawk    时间: 2015-4-15 11:27

  1. findstr "^123 ^789" 1.txt > 2.txt
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2