怎么过滤命令行出输出的标准错误呢?
本帖最后由 jeffinier 于 2018-08-09 16:39 编辑我执行的命令有大量的标准错误"warning ###### server1 server2 ...." 会直接输出到屏幕上我想保留除#外的所有内容, 并且输出到屏幕(即不输出#到屏幕),目前的笨办法是把错误重定向到文件再对文件进行sed处理,然后再打印出,有没有一步到位更好的办法呢? (我试过直接在命令行后用管道无法捕获标准错误)
xxx 2>&1 | sed yyy 回复 1# jeffinier
<command> 2>&1|awk '{gsub("#","")}1' 回复 3# Shell_HAT
可能你没明白我的意思, 2>&1后用 sed 无法实现输出到屏幕,因为sed无法捕获输入 回复 5# jeffinier
我执行的命令有大量的标准错误"warning ###### server1 server2 ...." 会直接输出到屏幕上我想保留除#外的所有内容, 并且输出到屏幕(即不输出#到屏幕)
不存在“aa###aa”这个文件
ls aa###aa
ls: aa###aa: 没有那个文件或目录
输出中去掉“#”
ls aa###aa 2>&1|awk '{gsub("#","")}1'
ls: aaaa: 没有那个文件或目录 回复 5# jeffinier
# xxx | sed 's/xxx//'
-bash: xxx: command not found
# xxx 2>&1 | sed 's/xxx//'
-bash: : command not found
能否举例说明“sed无法捕获输入”是什么意思?
页:
[1]