删除变量数据开头的空格

删除变量数据开头的空格

我想问一下如何去掉变量存储数据开头的空格?我有一个MySQL COUNT将从数据库获取的自动生成的脚本。

MYSQL COUNT SCRIPT-> .ini file (variable holder / parameters)->report-script

这意味着我有一个脚本将计算数据库中的一些数据,然后它将数据(.ini)作为变量存储在文本文件中,然后另一个脚本将读取该文件并查找变量。

下面db-count-script.sh是我的问题的一些相关代码。

#!/bin/bash
mysql_count=$(mysql ... -e"USE my_db;SELECT COUNT(*) FROM my_db.sr1 WHERE intime='1';"

echo $mysql_count #This is the output of this echo --> COUNT(*) 15

#from here I'm going to remove the COUNT(*)
cnt=${mysql_count//COUNT(*)}

#storing the data to the variable
echo "db_cnt=\""$cnt"\"" >> db-count.ini

里面db-count.ini我有这个数据。

db_cnt=" 7"

我想删除该变量上的空格,因为我有脚本来像这样调用该变量,并且为了将来的使用,我确实需要清理变量的数据。

#!/bin/bash
source db-count.ini
echo "Count:"$db_cnt
#Output 
Count: 7 

有什么建议吗?尖端?

谢谢。

答案1

db_cnt要在 bash 中删除变量前面的空格,请使用:

db_cnt="${db_cnt#"${db_cnt%%[![:space:]]*}"}" 

例子:

$ db_cnt=" 7"
$ echo "$db_cnt"
 7
$ db_cnt="${db_cnt#"${db_cnt%%[![:space:]]*}"}"
$ echo "$db_cnt"
7
$

您可以使用语法以任何您想要的方式自定义脚本。

答案2

一个简单的方法echo将消除正面和背面的空间

db_cnt=$(echo $db_cnt)

如果你想删除前面的空格但想保留变量末尾的空格,你可以使用sedas

db_cnt=$(echo "$db_cnt" | sed 's/^ *//')

答案3

将一行转换为数组并选择其数组位置将修剪空格。

while read input; do
   if [[ $input =~ COUNT\(\*\) ]]; then
       hunks=($input)
       db_cnt=${hunks[1]}
       echo $db_cnt
       break;
   fi
done < input

相关内容