[解決済み] Bashで文字列を小文字に変換する方法は?
2022-03-19 18:11:42
質問
での方法はありますか? バッシュ を小文字の文字列に変換することはできますか?
例えば、私が持っている場合。
a="Hi all"
に変換したい。
"hi all"
解決方法は?
いろいろな方法があります。
POSIX規格
tr
$ echo "$a" | tr '[:upper:]' '[:lower:]'
hi all
AWK
$ echo "$a" | awk '{print tolower($0)}'
hi all
非POSIX
以下の例では、移植性の問題に遭遇する可能性があります。
Bash 4.0
$ echo "${a,,}"
hi all
セッド
$ echo "$a" | sed -e 's/\(.*\)/\L\1/'
hi all
# this also works:
$ sed -e 's/\(.*\)/\L\1/' <<< "$a"
hi all
パール
$ echo "$a" | perl -ne 'print lc'
hi all
バッシュ
lc(){
case "$1" in
[A-Z])
n=$(printf "%d" "'$1")
n=$((n+32))
printf \\$(printf "%o" "$n")
;;
*)
printf "%s" "$1"
;;
esac
}
word="I Love Bash"
for((i=0;i<${#word};i++))
do
ch="${word:$i:1}"
lc "$ch"
done
注:この件に関してはYMMVです。私の場合(GNU bash version 4.2.46 と 4.0.33 (and same behaviour 2.05b.0 but nocasematch is not implemented))、以下のように使ってもうまくいきません。
shopt -u nocasematch;
. nocasematchの設定を解除すると、[[ "fooBaR" == "FOObar" ]]はOKになりますが、大文字小文字が[b-z]と[A-Z]で間違ってマッチしてしまうという奇妙な現象が発生します。Bashはダブルネガティブ("nocasematch"の設定を解除)で混乱しているのです! :-)
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み] JavaScript の文字列をすべて小文字に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] 文字列を分割して変数に代入する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Webでよく使われるPythonの実装31選(システム学習、学習後はコードの再利用能力を大幅に向上させます。)
-
[解決済み] Bashで部分文字列を抽出する
-
[解決済み] Go でファイルを一行ずつ読む
-
[解決済み】Linuxですべてのフォルダとファイルの名前を小文字に変更するにはどうすればいいですか?
-
[解決済み】bashで変数の一文字目を大文字にする。
-
[解決済み] SwiftでNSDataから文字列を初期化する方法
-
[解決済み] Goにはstartswith,endswith関数がない?
-
[解決済み] VB.NETでのマルチライン文字列
-
[解決済み] Swift で文字列から最初の文字を削除する最も簡潔な方法は何ですか?
-
[解決済み] 文字列の0は何ですか?