如何从grep中获取结果以在bash脚本中自行打印?
在终端中使用grep时,输出会显示我希望它出现的方式.
例如:
$ whois x.x.85.72 | grep 'OrgName\|NetRange\|inetnum\|IPv4'
NetRange: x.x.85.64 - x.x.85.95
NetRange: x.x.0.0 - x.x.255.255
OrgName: xxxxx Technologies Inc.
Run Code Online (Sandbox Code Playgroud)
在bash中使用相同的grep命令时,它会在一行上打印出来.
我的bash脚本的输出:
$ lookup xx.com
xx.com resolves to: x.x.85.72
NetRange: x.x.85.64 - x.x.85.95 NetRange: x.x.0.0 - x.x.255.255 OrgName:xxxxx Technologies Inc.
Run Code Online (Sandbox Code Playgroud)
我的bash脚本:
#! /bin/bash
VAR1="$1"
IP=`net lookup $VAR1`
echo $VAR1 resolves to: $IP
RANGE=`whois $IP | grep 'OrgName\|NetRange\|inetnum\|IPv4'`
echo $RANGE
Run Code Online (Sandbox Code Playgroud)
除了解决方案,谁能告诉我为什么这样做?
谢谢你!
我知道这样做会被认为是愚蠢的,但我正在尝试对命令行参数进行硬编码,而不是仅出于测试目的修改一大堆代码。
现有主要功能如下:
int main(int argc, char **argv) {
Run run(argc, argv);
return run.exec();
}
Run Code Online (Sandbox Code Playgroud)
我想对参数进行硬编码...所以这意味着将一个新指针传递给一个指针(因为这就是 run 函数所采用的)或重写 argv ?
我试图传递的数据...
char *config[] = {
" --user=temp"
" --name=Joe"
" --id=20"
};
Run Code Online (Sandbox Code Playgroud)
最安全和最“正确”的低音方法是什么?我还希望数组大小是动态的,这样我就不必在调用函数时手动定义 argc 。
一般来说,我对指针和 C 都很陌生,所以欢迎任何帮助!
所以使用一堆if语句,我认为有人可以用更好的方式帮助我.
这就是我想要做的.假设我有3个字符串,如果找到该字符串,我想为该字符串分配一个函数...
目前我正在做的一个基本的例子:
if(findStr(string1)) {
function1(perams);
}
else if (findStr(string2)) {
function2(perams);
}
else if (findStr(string3)) {
function3(perams);
}
Run Code Online (Sandbox Code Playgroud)
我正在做更大规模的类似事情,10个不同的字符串,每个字符串对应它自己的功能.
我愿意接受可能涉及我的字符串结构的选项吗?
我想只做一个if语句,即使涉及一个循环.我不想要调用"function1","function2","function3"我希望它以某种方式与字符串相关联.
这可以干净利落吗?或者if语句是最干净的方法吗?
多谢你们