bash - 如何将 awk 和管道的输出组合到 htop 中?
问题描述
$ ps -ef | grep python | awk -F' ' '{print $2}'
9825
4470
4619
$ htop -p 9825,4470,4619
现在,我必须创建两个单独的命令才能查看htop
. 有没有办法可以将所有结果从管道中输入awk
并将它们输入htop
?
解决方案
您可以避免grep
并仅awk
使用以下内容:
ps -ef | awk '/[p]ython/{print $2}'
然后你可以使用:
htop -p $(ps -ef | awk -v ORS=, '/[p]ython/{print $2}')
注意[]
周围的p
,这是避免打印第二个命令本身的好技巧:
ps -ef | awk '/[p]ython/{print $2}'
| |
cmd 1 cmd 2
它之所以有效,是因为awk
会将正则表达式翻译成[p]
类似“ [p]
在这种情况下p
仅匹配字符,然后是ython
:
[p]ython != python
推荐阅读
- javascript - 使用 Sequelize 按日期查询时间戳
- json - 在 jq 中组合和重新设置多个对象
- python - 昨天这工作,但今天它不是
- java - Kafka Streams App - 计数和总和
- python-asyncio - Python; asyncio async for 语句
- c++ - 在 c++ 项目中留下未使用的类有什么缺点?
- c++ - 使用调用 TCL 脚本的 Cpp 代码的 gcc 进行编译
- python - 使用 GDAL 将 EPSG:900913 转换为 EPSG:3857
- mysql - MySQL根据id更新多行
- javascript - 使用手写笔样式表时如何在 Angular 中运行业力测试?