use*_*782 2 unix shell criteria sed conditional-statements
我有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
Run Code Online (Sandbox Code Playgroud)
每个命令都有一个标准.我只想将3个命令放入1个命令中,以获得单个输出文件,其中包含所有结果作为三个条件的并集.
Tod*_*obs 10
您可以在由换行符分隔的脚本中放置多个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
Run Code Online (Sandbox Code Playgroud)
在此示例中,sed将在每个输入行上按顺序运行表达式,并仅在处理序列中的最终表达式后打印模式空间.肯定有其他方法可以做到这一点,但鉴于你的例子,这似乎是最合适的.