可変保存データの先頭にあるスペースを削除する方法を問い合わせたいと思います。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)
先行スペースを削除し、変数の末尾にスペースを保持するには、sed
次のように使用できます。
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