来自两个命令行的不带空格的文件名

来自两个命令行的不带空格的文件名

我正在运行两个 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')

相关内容