我需要根据列值获取一行,就像查询数据库一样.我有这样的命令输出,
名称ID Mem VCPU State
Time(s)域-0 0 15485 16 r ----- 1779042.1
prime95-01 512 1
-b ---- 61.9
在这里,我只需列出状态为"r"的那些行.像这样的东西,
域-0 0 15485 16
r ----- 1779042.1
我尝试过使用"grep"和"awk",但我仍然无法成功.
请帮我解决这个问题.
此致,Raaj
dte*_*ech 10
有许多可用于过滤的工具.
如果你只想要带有"r -----"grep的行绰绰有余:
command | grep "r-----"
Run Code Online (Sandbox Code Playgroud)
要么
cat filename | grep "r-----"
Run Code Online (Sandbox Code Playgroud)
引号是可选的,但可能会阻止grep跳过-s
grep
可以为您处理这个问题:
yourcommand | grep -- 'r-----'
Run Code Online (Sandbox Code Playgroud)
将(完整)输出保存到文件中以便稍后分析通常很有用。为此,我使用tee
.
yourcommand | tee somefile | grep 'r-----'
Run Code Online (Sandbox Code Playgroud)
如果你想稍后找到包含“-b----”的行而不重新运行yourcommand
,你可以使用:
grep -- '-b----' somefile
Run Code Online (Sandbox Code Playgroud)
我建议--
在您的调用之后放置grep
,因为您的模式包含减号,并且如果减号位于模式的开头,则这看起来像是一个选项参数,而grep
不是模式的一部分。
尝试:
awk '$5 ~ /^r.*/ { print }'
Run Code Online (Sandbox Code Playgroud)
像这样:
cat file | awk '$5 ~ /^r.*/ { print }'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36747 次 |
最近记录: |