我正在尝试从 bash 的命令答案中使用 awk 提取子字符串
示例输出行: abc_def_ghi jkl_lmn_opq
获得第二部分很容易
echo abc_def_ghi jkl_lmn_opq | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
但是我只需要最后一部分子字符串“opq”并且没有找到让 awk 在字符串上运行两次的方法,当我将结果从上面传递给 var 并使用这个 var 作为第二个 awk 我得到一个错误,因为字符串是一个路径,因此是一个目录。当在带有字符串的存储 var 上使用时,我也没有得到 sed 以处理相同的错误,并且我没有设法将第一个子字符串传递给第二个 awk 或 sed。奇怪的?
如果不是第一个 awk 会打印出来而不是传递给第二个 awk,这将完成工作
echo abc_def_ghi jkl_lmn_opq | awk '{print $2}' | awk -F"_" '{print $3}'
Run Code Online (Sandbox Code Playgroud)
两者都不起作用
echo abc_def_ghi jkl_lmn_opq | awk '{$2}' | awk -F"_" '{print $3}'
Run Code Online (Sandbox Code Playgroud)
我怎样才能通过它进行二次剥离?
我只需要使用Windows cmd功能.我需要来自网站的两个变量/字符串在batchscript中用于验证它的动作.为了不太简单,这个网站还需要进行身份验证.
我发现了这个地方:
@set @x=0 /*
:: ChkHTTP.cmd
@echo off
setlocal
set "URL=http://www.google.com"
cscript /nologo /e:jscript "%~f0" %URL% | find "200" > nul
if %ErrorLevel% EQU 0 (
echo Web server ok % Put your code here %
) else (
echo Web server error reported
)
goto :EOF
JScript */
var x=new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET",WSH.Arguments(0));x.send();
while (x.ReadyState!=4) {WSH.Sleep(50)};
WSH.Echo(x.status)
Run Code Online (Sandbox Code Playgroud)
但我不确定是否有可能以这种方式获取网站内容而不是状态回答,而且我不知道如何实现网站认证.
上面的代码不能正常工作,因为它会因为管道而产生错误,但这似乎更接近我解析我希望的内容的需求.