我是shell脚本新手。
当我写作
adb shell ps | grep "org.mozilla.fennec"
我得到了
u0_a52 908 57 557664 144820 ffffffff b6f755cc S org.mozilla.fennec
和
u0_a52 1083 57 243108 23824 ffffffff b6f755cc S org.mozilla.fennec.UpdateService
问题是我只需要第一行。所以我尝试adb shell ps | grep "org.mozilla.fennec$"
,但令人惊讶的是它没有显示任何内容。
我还需要第一行的第二个字段。我怎么能用grep做到这一点? 任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
删除第二行:
adb shell ps | grep "org.mozilla.fennec"|grep -v "UpdateService"
要打印第二个字段:
adb shell ps | grep "org.mozilla.fennec"|grep -v "UpdateService"| awk '{print $2}'
答案 1 :(得分:0)
要打印第二个字段,您可以使用awk
:
adb shell ps | awk -v RS='\r' '$NF == "org.mozilla.fennec"{print $2}'
打印整行:
adb shell ps | awk -v RS='\r' '$NF == "org.mozilla.fennec"'
答案 2 :(得分:0)
以下命令将在" adb shell ps"的命令输出中首次出现org.mozilla.fennec。并将停止照顾。
adb shell ps | awk '{if($0~/org.mozilla.fennec/){print $2; exit 0}}'
当你需要第一次模式匹配时,它更好,不需要在第一次匹配后扫描整个输出。