精品技术论坛

精品技术论坛 (https://bbs.et8.net/bbs/index.php)
-   『软件使用』 (https://bbs.et8.net/bbs/forumdisplay.php?f=17)
-   -   【求助】cmd的命令求助,输出文本查找以及替换 (https://bbs.et8.net/bbs/showthread.php?t=1385411)

boyyao 2020-06-26 03:47:28

【求助】cmd的命令求助,输出文本查找以及替换
 
假设一些网站返回特定格式的内容,其中有一行name=xxxx是我需要的。
我用curl来批量获取并且>>到txt文件。。大概cmd如下:

%%a= xxx.com
curl http://%%a/getinfo --connect-timeout 5 -m 2 | findstr "name=" >> ifno.txt

这样info.txt 能得到 name=xxxx的记录。但是我还想在info中的同一行记录xxx.com,并且不需要“name”只保留xxxx如何操作?
最终得到的结果是
xxx.com=xxxx

llyang 2020-06-26 19:47:41

真没看懂,你想把啥替换成啥。

也不晓得你的OS环境

so,无解

linux下面,这种替换 sed很容易搞定。

boyyao 2020-06-26 20:32:08

引用:

作者: llyang (文章 17621431)
真没看懂,你想把啥替换成啥。

也不晓得你的OS环境

so,无解

linux下面,这种替换 sed很容易搞定。

目前是在win下使用。。但是后期可能会需要linux下用。目前优先win。希望有两套方法,当然最好通用。。
简单的说 执行
curl http://xxx.com/getinfo --connect-timeout 5 -m 2 | findstr "name="
后会得到name=xxxx 的字符串。。
但是我希望在同一行还要记录xxx.com这个域名
所以需要把name=xxxx 修改成 xxx.com=xxxx
然后在重定向>>到info.txt 文件中。

llyang 2020-06-27 20:14:54

win不熟悉,linux下面我捣鼓下

既然curl里面包含域名,你事先把域名赋值给 myDomain = "xxx.com"


cat yourlogfile.txt | sed -i "s_name=_$myDomain_" >>info.txt

yourlogfile.txt是你产生的日志文件,包含name=blabla行

========================
另外,你表达的时候分别用abc.com 和 name=yyyy容易看懂;你用xxx和xxxx,根本就无关的3x和4x,把我看彻底迷糊了。

wgf4242 2020-06-27 21:28:50

试了下powershell替换支持正则好弄点

代码:

$s = 'curl http://xxx.com/getinfo --connect-timeout 5 -m 2 | findstr "name="'
$domain = echo $s | Select-String -Pattern 'http://(.*)\.' | %{$_.Matches.Groups[1].value}
echo $domain



所有时间均为北京时间, 现在的时间是 14:30:10.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号