web-dev-qa-db-ja.com

bashスクリプトの特定のシンボルを削除する方法

ディスク使用量を取得するbashスクリプトがあります(例:60%)。 %記号を削除するにはどうすればよいですか? grepまたはawkを使用していますか?

5
pmerino

これはそれを行うはずです:

sed 's/%//'

最良の結果を得るために、ストリングをパイプでパイプしてください。

4
womble

trsedのような外部ツールは必要ありません。これは、bashがそれ自体で永久に実行できるためです。

percentage="60%"
number=${percentage%\%}

このステートメントは、一致する最短のサブストリング(この場合はエスケープされた%)を変数の末尾から削除します。 bashに組み込まれた他の文字列操作機能があります。正規表現もサポートしています。一般に、trsedawkまたはgrepを使用する人々が通常目にするもののほとんどは、bashビルトインを使用して実行できます。それはほとんどヌーディーがそれについて知っていて、大きな銃を持っているだけです...

詳細は http://tldp.org/LDP/abs/html/parameter-substitution.html#PSOREX1 を参照してください。

9
Holger Just

Sedの代わりに、trを使用します。

tr -d '%'
5
MonkeeSage

sedは最も簡単な方法の1つです

sed -i 's/\%//g' fileName
4
Mike

ディスク使用量が変数内にある場合、bashは変数置換の一部として削除を実行できます。

diskusagepct="60%"
echo "disk usage: ${diskusagepct%\%} percent"  # prints disk usage: 60 percent
diskusagenum="${diskusagepct%\%}"  # sets diskusagenum to 60
2
Gordon Davisson