【发布时间】:2013-04-06 00:03:12
【问题描述】:
抱歉标题令人困惑,如果没有示例,我无法完全表达我想要做什么。
我运行了一串命令,生成的输出如下所示:
Host_A
Host_B
Net_X
Group_Y
以此类推
然后我想获取该输出并将其提供给 sed,以便它将在上一个列表中找到的任何字符串实例替换为新字符串,例如 Host_Q。
sed 's/Host_A/Host_Q/g'
工作正常,但我想避免手动为每个主机编写一个 sed 字符串。
谢谢!
编辑:更好的例子
grep 流产生:
Host_A
Host_B
Host_C
Host_D
+lots more
我想将该 grep 流通过管道传送到 sed,并让 sed 将这些主机的所有实例替换为一个新的(虽然相同)主机名。
Editx2:此外,列表是动态的。所以我对新文件运行的每种类型,内容都会不同,这就是为什么我不能(也不想)硬编码原始值。
编辑:::
我自己想出来的,对不起各位。
我是这样处理的:
awk '{print "sed \x27s\/"$1"/HOST_Q/g\x27"}'
抱歉让你这么混乱
【问题讨论】:
-
这是stackoverflow.com/questions/15829445/… 的副本,或者至少可以在该线程中找到该问题的解决方案。
-
您的问题含糊不清,我不确定我是否理解正确,您能说得具体点吗?
-
编辑是否让它变得更好?
-
所以你想自动替换 Host_A -> Host_Q, Host_B -> Host_W 什么的?并在程序输出中对这些单词的每一次出现进行替换?
-
Host_A -> Host_Q | Host_B -> Host_Q 等都得转成Host_Q。是的,所有实例