gpt4 book ai didi

string - 如果字符串为空,则使用 AWK 打印指定的文本

转载 作者:行者123 更新时间:2023-12-02 05:38:08 26 4
gpt4 key购买 nike

我正在尝试使用 awk 打印特定文本如果字符串为空。在以下情况下工作正常

noob@noob:~$ echo "" | awk '{if ($0=="") print "not playing"}'
not playing

但是当我尝试在以下情况下采取类似的方法时,它不起作用
noob@noob:~$ mpc current | awk '{if ($0=="") print "not playing"}'
noob@noob:~$

我相信 mpc current 的输出如果没有歌曲正在播放是一个空字符串。
noob@noob:~$ mpc current
noob@noob:~$ #empty string

所以,是我对 empty string 的假设吗?错误的?

最佳答案

显然它根本不打印任何内容,甚至没有换行符。试试这个。

mpc current | awk '{ print } END { if (!NR) print "not playing" }'

这将打印任何输出。如果你不想这样,取出 { print } .

awk 依次处理每一行,然后在 EOF 处执行任何 END block 。如果没有输入行,开头就会有一个EOF,变量 NR将为零,因此 END block 将打印占位符文本。 (我最初为此有一个专用变量,但是 Bob Vale 的答案中使用的内置行号变量 NR 显然更优雅。对于 awk 读取的每个输入行,它都会递增。)

关于string - 如果字符串为空,则使用 AWK 打印指定的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11222190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com