LoginSignup
16
10

More than 5 years have passed since last update.

文字列を1文字ずつに分解する

Last updated at Posted at 2016-12-05

bashやshellsciriptにおいて、文字列を1文字ずつに分解するとき、個人的にまず思いつくのはawkを利用する方法です。

echo 'helloworld' | awk -v FS='' '{
    for (i = 1; i <= NF; i++) print $i;
}'

FSはフィールドのセパレータを指定する組み込み変数であり、上記の例では空文字列を指定するで文字列を分解しています。上の例では分解してできた文字をそのまま標準出力に流していますが、「その文字を利用して何らかの処理をしたい」場合には、文字列操作にたけたawkを利用するのは大きな利点だと思います。

文字列操作はとりあえずawkで何とかしたい派のわたしとしては上の例で満足ですが、「文字列分解だけしたい。そのあとは別のコマンドに処理を流したい」というときにはややくどいのも事実。またシェルスクリプト過激派の一部にはawkすら利用することをためらう/禁じる宗派も存在するそうです。そういうときはfoldを利用しましょう。

echo 'helloworld' | fold -s1

foldの存在を最近知ったのは内緒(´・ω・`)

16
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
10