在非标准命令中使用 awk 输出

问题描述 投票:0回答:1

我有一些来自 awk 的输出和一些其他命令,我需要将其放入不属于标准 unix 库的最终命令中,因此将其放入 awk 命令本身是行不通的。

我现在的命令在下面,并提供以下输出

root@amc-d24a4-rf4:~# for x in {0..19}; do   showbbchan $x | grep 60.2; done | sed 's/://g' | awk '{print $2, $3, $4, '-16.6'}'

11 TX3 -8100000 -16.6
12 TX1 12700000 -16.6
13 TX1 -3800000 -16.6
15 TX3 1500000 -16.6
16 TX3 -3300000 -16.6
17 TX1 17500000 -16.6
18 TX1 1000000 -16.6
19 TX3 6300000 -16.6

我需要将该输出放入 cfgbbchan(非标准命令)命令中,因此它看起来像

cfgbbchan 11 TX3 -8100000 -16.6
然后

cfgbbchan 12 TX1 12700000 -16.6

我试过使用 xargs 但无法弄清楚。感觉好像我很接近,但无法弄清楚最后一步。

基本上我需要从 showbbchan 获取某些输出并将它们放入 cfgbbchan。

showbbchan 输出示例

root@amc-d24a4-rf4:~# showbbchan 1
BB_Chan 1: RX0 -17700000 Hz 0.0 dB Selected:1 Enabled:1
BB_Chan 1: TX3 -17700000 Hz -16.6 dB Selected:1 Enabled:1

谢谢!!

bash awk output pipe
1个回答
0
投票

当你使用

grep
时,你不需要
sed
也不需要
awk
xargs
可以做你想要的:

for x in {0..19}
do
    showbbchan "$x"
done |
awk '
    /60\.2/ {
        gsub(/:/,"")
        print $2, $3, $4, "-16.6"
    }
' |
xargs -L 1 cfgbbchan

注意:我猜(也许是错误的)你想要一个“文字点”而不是

60.2
正则表达式中的“任何字符”

© www.soinside.com 2019 - 2024. All rights reserved.