使い方
参考:
Bash String Manipulation Examples – Length, Substring, Find and Replace | The Geek Stuff
String Manipulation | Baeldung
Manipulating Strings | Advanced Bash-Scripting Guide
Bash String Processing | Green Flashes
How to increase speed string processing in Bash script? – Stack Overflow
文字列を連結する
パラメータ展開を使う。
hello="Hello" world="World" hello_world="$hello, $world" echo "$hello_world"
printf
を使う。
hello="Hello" world="World" hello_world=$( printf "%s, %s" "$hello" "$world" )
+=
を使う。
str="Hello" str+=", World"
参考:
String Concatenation | nixCraft
How to Concatenate or Add Strings? | POFTUT
How to Concatenate Two String Variables | TecAdmin.net
How to concatenate string variables – Stack Overflow
How to concatenate string variables into a third? – Unix & Linux Stack Exchange
How to concatenate the following strings? – Ask Ubuntu
How do I concatenate strings? – Super User
How does one concatenate strings? – Quora
文字列を分割する
tr
コマンドでセパレーターを空白または改行などに置換する。sed
コマンドでセパレーターを空白または改行などに置換する。cut
コマンドを使う。awk
コマンドを使う。- Bash の変数展開を使う。
read
コマンドを使う。- 一時的に環境変数
IFS
を変更する。
参考:
文字列分解する時、cut や awk もいいけど、set の方が早い、けど read が最強 – Qiita
シェルスクリプトで文字列の分割と結合をする時のベストプラクティス – Qiita
シェルスクリプトで文字列を分割する方法いろいろ | ゲンゾウ用ポストイット
文字列をデリミタ指定して split する | yanor.net/wiki
cut コマンドで区切り文字を指定して分割する方法が便利すぎた! | mikemikeblog
IFS を変えてセミコロンで文字列を分割する | kokoichi206’s Diary
文字列をエスケープ処理する
文字列をエスケープ処理するには、printf
コマンドの %q
書式を使用する。
escaped=$( printf "%q" "$str" )
Code language: Bash (bash)
使用例
$ echo $( printf "%q" '"$hello, $world\n"' ) \"\$hello\,\ \$world\\n\"
参考:
ssh などの引数がコマンドとして解釈されるコマンドに文字列を渡す – Qiita
シェルスクリプトでダブルクォーテーションを文字列に含む – Yahoo! 知恵袋
Quoting and Escaping #1 | Cloud 66 blog
How can I escape double quotes in content gotten from file – Server Fault
空文字 (Null String)
空文字と値なしは同じ意味となる。
var=""
var=''
var=
Code language: Bash (bash)
参考:
Are the null string and “” the same string? – Unix & Linux Stack Exchange
指定の幅に文字を埋める
参考:
How to pad strings with spaces in a Unix shell script? – Super User
pad end of each line with spaces to = 80 chars ?? – LinuxQuestions.org
前後の空白を取り除く
echo
を使う。
$ echo $(cat file.txt | wc -l)
参考:
シェル変数の先頭にあるスペースの除去 | My life is programming
正規表現に一致する部分を取り出す
expr
コマンドを使う。
参考:
Unicode 文字の ANSI-C クォーティング
\u
に4桁のコードポイントを続けて Unicode 文字を表す。
$ echo -e "\u263B"
\U
に8桁のコードポイントを続けて Unicode 文字を表す。
$ echo -e "\U0001f603"
ドキュメント:
ANSI-C Quoting | Bash Reference Manual
参考:
Unicode コードポイント表記を出力するシェル芸 | Ryoto’s Blog
シェル上で Unicode 絵文字を表示させる – Qiita
How do you echo a 4-digit Unicode character in Bash? – Stack Overflow
ドキュメント
Manipulating Strings | Advanced Bash-Scripting Guide