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

[问题求助] [已解决]文件不分行sed如何取出8-9位的数字字符串?

本帖最后由 hansom 于 2011-10-18 13:56 编辑

57047&tpl=w&username=2940253&tpl=w&navftype
57047&tpl=w&username=27949941&tpl=w&navftype
57047&tpl=w&username=2340243&tpl=w&navftype
57047&tpl=w&username=27934233&tpl=w&navftype

上面是1.txt中的代码示例,为方便看我把代码分行了,实际中的是不分行的。
如何取出usermane=后面的8-9位数字?
这样行不?
sed -n /*username=\(.*\)&tpl*/\ 1.txt
好像测试通不过。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

用for的话,文件不分行好像也不好处理。
for /f "tokens=2 delims==" %%i in (1.txt) do (echo %%i >>temp1.txt)

TOP

回复 5# awk
谢谢awk!,你的gawk把我要全部取出了
G:\vbs>gawk -F"[=&;]" "{for(i=1;i<=NF;i++)if($i==\"username\"){j=i+1;print $j}}"
temp.txt
1005203
2442689
2794991
2940253
4121341
15250977
16381849
18502445
23028594
23520785

G:\vbs>pause
请按任意键继续. . .

TOP

回复 4# hfg1977


    多谢指点·
你的不分行的代码我运行后却只取出了一个我要的。

G:\vbs>type temp.txt  | sed "y/;&/\n\n/"  | sed -n "/username=/ s/.*username=\([
0-9]\+\).*/\1/p"
23520785

G:\vbs>pause
请按任意键继续. . .

TOP

地址变动一下就出不出了:&amp;username=38784392">

TOP

回复 9# awk


    我的sed 是4.0.7的

TOP

呵呵,gawk -help,看得好累啊。。有点没辙了。。。

TOP

回复 13# awk
请教前辈代码应如何改下?

TOP

1648507"></a><br/>2
2673694"></a><br/>3
为什么把后面的取出来了,而前面是正确的呢?
哪位朋友能提供下gawk的chm的帮助文档?

TOP

返回列表