Linux 如何在bash中修改命令的实时详细输出?
如果我运行命令Linux 如何在bash中修改命令的实时详细输出?,linux,bash,shell,Linux,Bash,Shell,如果我运行命令ping google.com。它将在终端上提供连续输出。 示例输出: 64 bytes from 74.125.130.101: icmp_seq=1 ttl=42 time=980 ms 64 bytes from 74.125.130.101: icmp_seq=2 ttl=42 time=1883 ms 64 bytes from 74.125.130.101: icmp_seq=3 ttl=42 time=1947 ms 64 bytes from 74.125.130.
ping google.com
。它将在终端上提供连续输出。
示例输出:
64 bytes from 74.125.130.101: icmp_seq=1 ttl=42 time=980 ms
64 bytes from 74.125.130.101: icmp_seq=2 ttl=42 time=1883 ms
64 bytes from 74.125.130.101: icmp_seq=3 ttl=42 time=1947 ms
64 bytes from 74.125.130.101: icmp_seq=4 ttl=42 time=1273 ms
64 bytes from 74.125.130.101: icmp_seq=5 ttl=42 time=848 ms
64 bytes from 74.125.130.101: icmp_seq=6 ttl=42 time=1072 ms
64 bytes from 74.125.130.101: icmp_seq=7 ttl=42 time=1202 ms
现在,如果我想修改每个输出行,只显示74.125.130.101:部分中的64字节,我该怎么做
我想知道一种通用方法,它也可以与其他命令一起使用,这些命令可以生成实时详细输出。使用通过管道剪切:
ping google.com | cut -d":" -f1
使用切割管道:
ping google.com | cut -d":" -f1
awk方式:
ping google.com | awk -F ":" '{print $1}'
如果您需要与问题中完全相同的尾随冒号:
ping google.com | awk -F ":" '{print $1 ":"}'
格雷普方式:
ping google.com | grep -o "^.*:"
sed方式:
ping google.com | sed 's/\(.*:\).*/\1/'
awk方式:
ping google.com | awk -F ":" '{print $1}'
如果您需要与问题中完全相同的尾随冒号:
ping google.com | awk -F ":" '{print $1 ":"}'
格雷普方式:
ping google.com | grep -o "^.*:"
sed方式:
ping google.com | sed 's/\(.*:\).*/\1/'
只需通过管道连接到sed/awk/等?即,ping google.com | sed/:.*$/”
将为您提供所需的输出。使这样的事情成为泛型意味着(IMHO)进行一些分析,并建立一个要应用于输出的动词列表。对于这种情况,您可以将函数设置为右侧(从右侧删除),但仍需要将:.*
作为参数传入。在*NIX Land中,这被认为与“使用管道来减少产出以获得所需的”的标准相反,不值得付出努力;(对不起)。请随意扩展您对泛型的定义,我们可能会有一些想法来帮助您。祝你好运。只需通过管道发送到sed/awk/等?即,ping google.com;sed/:.*$/”
将为你提供所需的输出。使这样的事情成为泛型意味着(IMHO)进行一些分析,并建立一个要应用于输出的动词列表。对于这种情况,您可以将函数设置为右侧(从右侧删除),但仍需要将:.*
作为参数传入。在*NIX Land中,这被认为与“使用管道来减少产出以获得所需的”的标准相反,不值得付出努力;(对不起)。请随意扩展您对泛型的定义,我们可能会有一些想法来帮助您。祝你好运