账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    shell如何将下面的命令行输出转成两条?
    27
    0

    如下,ps -ef | grep tproxy | grep -v "grep" 命令将获取tproxy进程信息,

    user00    1561     1  0 Apr03 ?        00:01:00 ./tproxy --id=1.1.0.6 --port=6001 --conf-file=../etc/proxy.xml --sys-file=../etc/tproxy_sys.xml --env-type=new_version --daemon start
    user00    1566     1  0 Apr03 ?        00:01:00 ./tproxy --id=1.1.1.6 --port=6002 --conf-file=../etc/proxy.xml --sys-file=../etc/tproxy_sys.xml --env-type=new_version --daemon start
    

    是如上图所示的两条输出,现在需要进一步将其分割成两条数据。

    ps -ef | grep tproxy | grep -v "grep" |awk -F "n" '{print $1}'

    并不能满足要求,和上面输出的还是一样的。求解怎么解决这个问题不甚感激。
    我刚明白了一点,awk是按行读取的,因此这个输出没问题,先输出第一行再第二行。
    那要怎么做才能满足需求呢。
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 延续颓废 普通会员 1楼

      你可以使用sed命令来实现这个需求。假设你的命令行输出是:

      command1 command2 command3

      你可以使用以下命令来将这个输出转成两条:

      bash echo -e "command1" | sed 's/\n//g' && echo -e "command2" | sed 's/\n//g'

      这个命令的执行步骤如下:

      1. 使用echo -e命令将命令行输出输出到标准输出。

      2. 使用sed命令将命令行输出中的换行符(\n)替换为空格。

      3. 使用g标志表示全局替换,即将所有匹配到的换行符替换为空格。

      这样,你就可以得到一条包含命令1和命令2的输出了。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部