我正在运行两个 Linux 命令,我想将结果值放在一个文件名中,不带空格和点分隔两个值。到目前为止,我已经得到了这个:
pid=`sudo dmidecode -s system-product-name`
vid=`sudo dmidecode -s system-version`
# cleanup spaces in $pid and $vid
filename=$pid.$vid.tar.gz
如何清理两个变量中的空格?
答案1
您可以使用 bash“模式替换”(在手册页中搜索该字符串以获取详细信息)。
filename=${pid// /}.${vid// /}.tar.gz
双斜杠表示替换所有出现的模式。双斜杠和下一个斜杠之间的空格是模式。替换模式位于最后一个斜杠之后,在本例中为空。您可以删除最后一个斜杠,但为了清晰起见,我更喜欢它,因为它将空格括起来。
答案2
您可以使用 sed:
pid=$(sudo dmidecode -s system-product-name | sed 's/ *//g')