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

[文本处理] 批处理如何删除文本每行前几个字符?

本帖最后由 pcl_test 于 2016-7-28 17:19 编辑

例如
a.txt 文本里面的内容:
"0001    baidu.com"
"0002    kaixin001.com"
"0003    1234.com"
要处理的是,只要提取baidu.com 把带数字和冒号过滤掉,并且把之前的0001,0002也过滤掉。文本的内容最后是baidu.com。

中间的是空格还是TAB?
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3. for /f "tokens=2 delims= " %%b in (%%a) do echo %%b
  4. )
  5. pause
复制代码
努力学习,努力挣分

TOP

原帖由 sgaizxt001 于 2010-7-14 23:43 发表
中间的是空格还是TAB?@echo off
for /f "delims=" %%a in (a.txt) do (
for /f "tokens=2 delims= " %%b in (%%a) do echo %%b
)
pause

中间的是空格哦

TOP

在批处理for里面,空格早就被和谐了...
我觉得2楼代码不必那么麻烦、
  1. for /f "tokens=1,2" %%i in (a.txt) do echo %%j>>b.txt
复制代码
足够了...

TOP

等等。。楼主只要baidu.com吗?

TOP

只要baidu.com
type a.txt|grep -o "[^0-9][a-zA-Z]*.com"
保留 xxxx.com
type a.txt|grep -o "[0-9a-zA-Z]*.com"

正在学习 GREP呵呵

TOP

感谢批处理群网名叫风魔的兄弟,我把最终的代码发来吧。
  1. @echo off&setlocal enabledelayedexpansion
  2. echo.>b.txt
  3. for /f "tokens=1,* delims= " %%a in (a.txt) do (
  4. set X=%%b
  5. echo !X:~,-1! >>b.txt
  6. )
  7. FINDSTR /c:".com" b.txt >c.txt
  8. pause
复制代码

TOP

  1. @echo off
  2. for /f "tokens=2" %%a in (a.txt) do (
  3. set "str=%%a
  4. call echo %%str%%
  5. )
复制代码
实在不明白楼主想要什么,带数字的1234.com这些要不要?
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

  1. grep -o "[a-zA-Z0-9]\+\.com" 1.txt >2.txt
复制代码

TOP

  1. gawk -F "[\" ]+"  "{print $3}" 1.txt >2.txt
复制代码

TOP

  1. sed "s/.* \([^\"]\+\)\"/\1/" 1.txt >2.txt
复制代码

TOP

  1. gawk "{gsub(/\"$/,\"\");print $2}" 1.txt >2.txt
复制代码

TOP

  1. gawk "BEGIN{FS=\"[ \x22]\"}{print $6}" urfile
复制代码

TOP

返回列表