标题: [文本处理] 批处理如何删除文本每行前几个字符? [打印本页]
作者: wuzu007 时间: 2010-7-14 22:58 标题: 批处理如何删除文本每行前几个字符?
本帖最后由 pcl_test 于 2016-7-28 17:19 编辑
例如
a.txt 文本里面的内容:
"0001 baidu.com"
"0002 kaixin001.com"
"0003 1234.com"
要处理的是,只要提取baidu.com 把带数字和冒号过滤掉,并且把之前的0001,0002也过滤掉。文本的内容最后是baidu.com。
作者: 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
复制代码
作者: wuzu007 时间: 2010-7-15 09:53
原帖由 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
中间的是空格哦
作者: canyuexiaolang 时间: 2010-7-15 11:06
在批处理for里面,空格早就被和谐了...
我觉得2楼代码不必那么麻烦、- for /f "tokens=1,2" %%i in (a.txt) do echo %%j>>b.txt
复制代码
足够了...
作者: canyuexiaolang 时间: 2010-7-15 11:07
等等。。楼主只要baidu.com吗?
作者: hfg1977 时间: 2010-7-15 15:09
只要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呵呵
作者: wuzu007 时间: 2010-7-15 21:17
感谢批处理群网名叫风魔的兄弟,我把最终的代码发来吧。- @echo off&setlocal enabledelayedexpansion
- echo.>b.txt
- for /f "tokens=1,* delims= " %%a in (a.txt) do (
- set X=%%b
- echo !X:~,-1! >>b.txt
- )
- FINDSTR /c:".com" b.txt >c.txt
- pause
复制代码
作者: defanive 时间: 2010-7-15 22:08
- @echo off
- for /f "tokens=2" %%a in (a.txt) do (
- set "str=%%a
- call echo %%str%%
- )
复制代码
实在不明白楼主想要什么,带数字的1234.com这些要不要?
作者: CUer 时间: 2010-7-15 23:02
- grep -o "[a-zA-Z0-9]\+\.com" 1.txt >2.txt
复制代码
作者: CUer 时间: 2010-7-15 23:04
- gawk -F "[\" ]+" "{print $3}" 1.txt >2.txt
复制代码
作者: CUer 时间: 2010-7-15 23:06
- sed "s/.* \([^\"]\+\)\"/\1/" 1.txt >2.txt
复制代码
作者: CUer 时间: 2010-7-15 23:10
- gawk "{gsub(/\"$/,\"\");print $2}" 1.txt >2.txt
复制代码
作者: asnahu 时间: 2010-9-12 00:24
- gawk "BEGIN{FS=\"[ \x22]\"}{print $6}" urfile
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |