很难说出这里问的是什么。这个问题是模棱两可的、含糊的、不完整的、过于宽泛或修辞的,不能以其目前的形式得到合理的回答。如需帮助澄清此问题以便可以重新打开,visit the help center .
9年前关闭。
我有 3 个 sed
命令:
sed -n 's/.*domain=\([^&]*\).*sdk_ver=\([^&]*\).*/\1 \2/p' inputfile > outputfile
sed -n 's/.*sdk_version=\([^&]*\).*domain=\([^&]*\).*/\2 \1/p' inputfile > outputfile
sed -n 's/.*domain=\([^&]*\).*sdk_version=\([^&]*\).*/\1 \2/p' inputfile > outputfile
每个命令都有一个标准。我只想将 3 个命令放入 1 个命令中,以获得一个输出文件,其中包含所有结果作为三个条件的联合。
请您参考如下方法:
使用多个 Sed 表达式
您可以将多个 sed 表达式放置在由换行符分隔的脚本中,或者作为由 分隔的多个表达式。 -e 选项。例如:
sed -n -e 's/.*domain=\([^&]*\).*sdk_ver=\([^&]*\).*/\1 \2/' \
-e 's/.*sdk_version=\([^&]*\).*domain=\([^&]*\).*/\2 \1/' \
-e 's/.*domain=\([^&]*\).*sdk_version=\([^&]*\).*/\1 \2/p' \
inputfile > outputfile
在这个例子中,sed 将在每个输入行上顺序运行表达式,并且只在序列中的最后一个表达式被处理后打印模式空间。当然还有其他方法可以做到这一点,但鉴于您的示例,这似乎是最合适的。