【问题标题】:Running piped bash script运行管道 bash 脚本
【发布时间】:2016-04-10 09:35:42
【问题描述】:

我需要将我的 bash 脚本 (output.sh) 作为管道脚本执行。 见下文。

echo "Dec 10 03:39:13 cgnat2.dd.com 1 2015 Dec 9 14:39:11 01-g3-adsl - - NAT44 - [UserbasedW - 100.70.24.236 vrf-testnet - 222.222.34.65 - 3072 4095 - - ][UserbasedW - 100.70.25.9 vrf-testnet - 222.222.34.65 - 16384 17407 - - ][UserbasedW - 100.70.25.142 vrf-testnet - 222.222.34.69 - 9216 10239 - - ]" | ./output.sh

如何将回显文本输入到我的 output.sh 文件中,我需要使用 [ 拆分回显文本

输出应该是

[UserbasedW - 100.70.24.236 vrf-testnet - 222.222.34.65 - 3072 4095 - - ] [UserbasedW - 100.70.25.9 vrf-testnet - 222.222.34.65 - 16384 17407 - - ] [UserbasedW - 100.70.25.142 vrf-testnet - 222.222.34.69 - 9216 10239 - - ]

请帮助我。我不知道.. :(

【问题讨论】:

    标签: bash shell awk grep sh


    【解决方案1】:

    使用 grep:

    | grep -o '\[[^]]*\]'
    

    或使用 GNU grep:

    | grep -oP '\[.*?\]'
    

    输出:

    [基于用户的W - 100.70.24.236 vrf-testnet - 222.222.34.65 - 3072 4095 - - ] [基于用户的W - 100.70.25.9 vrf-testnet - 222.222.34.65 - 16384 17407 - - ] [基于用户的W - 100.70.25.142 vrf-testnet - 222.222.34.69 - 9216 10239 - - ]

    使用 bash 脚本(例如 output.sh):

    #!/bin/bash
    grep -o '\[[^]]*\]'
    

    用法:

    echo "... your string ..." | ./output.sh
    

    见:The Stack Overflow Regular Expressions FAQ

    【讨论】:

    • 我需要将这些输出文本放入我的 output.sh 文件中......我该怎么做??
    • 谢谢...最后你能告诉我如何获得以下部分Dec 10 03:39:13 cgnat2.dd.com 1 2015 Dec 9 14:39:11 01-g3-adsl - - NAT44 -
    • echo "... your long string ..." | grep -o '^[^\[]*'
    【解决方案2】:

    如果它在第一个 [ 之前删除 header,请在管道之前使用 sed(假设您的回声是其他来源的样本)

    echo "Dec 10 03:39:13 cgnat2.dd.com 1 2015 Dec 9 14:39:11 01-g3-adsl - - NAT44 - [UserbasedW - 100.70.24.236 vrf-testnet - 222.222.34.65 - 3072 4095 - - ][UserbasedW - 100.70.25.9 vrf-testnet - 222.222.34.65 - 16384 17407 - - ][UserbasedW - 100.70.25.142 vrf-testnet - 222.222.34.69 - 9216 10239 - - ]" \
     | sed 's/^[^[]*//' \
     | ./output.sh
    

    【讨论】:

    • 如何编写 output.sh shell 文件以获取拆分字符串 ???我需要将拆分后的文本放入我的 output.sh 文件中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    相关资源
    最近更新 更多